插件窝 干货文章 Nginx如何开启SSL

Nginx如何开启SSL

配置 Nginx SSL 证书 379    来源:    2025-04-27

Nginx 开启 SSL 配置指南

要在 Nginx 上启用 SSL/TLS 加密,您需要完成以下步骤:

前提条件

  1. 已安装 Nginx
  2. 拥有 SSL 证书(包括证书文件和私钥文件)
    • 可以是自签名证书
    • 也可以是从 CA 机构(如 Let's Encrypt)获取的证书

基本 SSL 配置步骤

1. 将证书文件放置到服务器

将您的证书文件(通常为 .crt.pem 文件)和私钥文件(通常为 .key 文件)上传到服务器,建议放在 /etc/nginx/ssl/ 目录下。

2. 修改 Nginx 配置文件

编辑您的站点配置文件(通常在 /etc/nginx/sites-available/your-site):

server {
    listen 443 ssl;
    server_name yourdomain.com;

    # SSL 证书配置
    ssl_certificate /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;

    # 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_prefer_server_ciphers on;

    # 其他配置...
    location / {
        # 您的常规配置
    }
}

3. 重定向 HTTP 到 HTTPS(可选但推荐)

添加以下 server 块来将所有 HTTP 流量重定向到 HTTPS:

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

4. 测试配置并重启 Nginx

sudo nginx -t  # 测试配置是否正确
sudo systemctl restart nginx  # 重启 Nginx 使配置生效

高级 SSL 配置选项

1. 启用 HTTP/2

listen 443 ssl http2;

2. 启用 OCSP Stapling

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/ca.crt;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

3. 配置 HSTS(严格传输安全)

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";

4. 使用 Let's Encrypt 证书(推荐)

使用 certbot 自动获取和配置证书:

sudo apt install certbot python3-certbot-nginx  # Ubuntu/Debian
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

验证 SSL 配置

配置完成后,您可以使用以下工具验证 SSL 配置: - SSL Labs SSL Test - 命令行工具:openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

注意事项

  1. 确保证书文件和私钥文件的权限设置正确(通常应为 600 或 640)
  2. 定期更新证书(特别是 Let's Encrypt 证书每 90 天过期)
  3. 考虑使用更安全的 TLS 1.3 协议
  4. 禁用不安全的加密套件

按照以上步骤配置后,您的 Nginx 服务器将能够安全地提供 HTTPS 服务。