插件窝 干货文章 Nginx下如何升级https

Nginx下如何升级https

yourdomain Nginx 证书 SSL 646    来源:    2025-04-25

Nginx HTTPS 升级指南

升级Nginx到使用HTTPS可以显著提高网站安全性。以下是完整的升级步骤:

前提条件

  • 已安装Nginx
  • 拥有域名
  • 服务器管理员权限

1. 获取SSL证书

选项1: 使用Let's Encrypt免费证书

# 安装Certbot
sudo apt install certbot python3-certbot-nginx  # Ubuntu/Debian
sudo yum install certbot python3-certbot-nginx  # CentOS/RHEL

# 获取并安装证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

选项2: 商业SSL证书

  1. 从证书提供商购买证书
  2. 获取以下文件:
    • 证书文件(通常为.crt或.pem)
    • 私钥文件(.key)
    • 可能的中间证书链文件

2. 配置Nginx

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

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    # SSL证书路径
    ssl_certificate /path/to/yourdomain.crt;
    ssl_certificate_key /path/to/yourdomain.key;

    # 如果使用商业证书且有中间证书链
    ssl_trusted_certificate /path/to/intermediate.crt;

    # SSL优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;

    # 其他配置...
    root /var/www/yourdomain.com/html;
    index index.html;
}

3. HTTP重定向到HTTPS

添加或修改80端口的server块,强制重定向到HTTPS:

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

4. 测试并应用配置

# 测试Nginx配置
sudo nginx -t

# 重新加载Nginx
sudo systemctl reload nginx

5. 验证HTTPS设置

使用以下工具验证配置: - SSL Labs测试 - 浏览器访问https://yourdomain.com检查锁图标

6. 自动续期(Let's Encrypt)

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

# 设置自动续期(通常已自动配置)

常见问题解决

  1. 证书不信任:

    • 确保中间证书链正确配置
    • 使用openssl verify -CAfile /path/to/intermediate.crt /path/to/yourdomain.crt验证
  2. 混合内容警告:

    • 确保所有资源(图片、CSS、JS)使用HTTPS URL
  3. 性能问题:

    • 启用HTTP/2(listen 443 ssl http2)
    • 启用OCSP Stapling(已在上述配置中)
  4. 旧版浏览器兼容性:

    • 如果需要支持旧浏览器,可以添加TLSv1.1(不推荐)

通过以上步骤,您的Nginx服务器将安全地升级到HTTPS,提供加密连接并提高用户信任度。