插件窝 干货文章 如何实现Nginx的HTTPS配置

如何实现Nginx的HTTPS配置

Nginx 配置 yourdomain SSL 108    来源:    2025-04-10

Nginx HTTPS配置指南

要实现Nginx的HTTPS配置,您需要完成以下几个关键步骤:

1. 获取SSL证书

您可以从以下途径获取SSL证书: - 免费证书:Let's Encrypt (推荐使用Certbot工具) - 商业证书:DigiCert、GlobalSign、Comodo等

使用Let's Encrypt获取免费证书

# 安装Certbot
sudo apt-get install certbot python3-certbot-nginx

# 获取并自动配置证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

2. 基本HTTPS配置

在Nginx配置文件中(通常位于/etc/nginx/sites-available/yourdomain.conf):

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    # SSL证书路径
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    # SSL协议配置
    ssl_protocols TLSv1.2 TLSv1.3;

    # SSL加密套件
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';

    # 其他SSL优化参数
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 其他服务器配置...
    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

3. HTTP重定向到HTTPS

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

4. 高级SSL配置(可选)

启用HSTS (HTTP Strict Transport Security)

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

OCSP Stapling

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

5. 测试和重启Nginx

# 测试配置是否正确
sudo nginx -t

# 重启Nginx使配置生效
sudo systemctl restart nginx

6. 证书自动续期(针对Let's Encrypt)

Let's Encrypt证书有效期为90天,建议设置自动续期:

# 测试续期命令
sudo certbot renew --dry-run

# 设置自动续期的cron任务
sudo crontab -e
# 添加以下内容(每天凌晨2点检查续期)
0 2 * * * /usr/bin/certbot renew --quiet

验证HTTPS配置

使用以下工具验证您的HTTPS配置: - SSL Labs测试 - 浏览器访问您的网站,检查地址栏是否有锁图标

通过以上步骤,您的Nginx服务器将能够安全地提供HTTPS服务。