标准 HTTPS 配置文件示例

在将 CertificateHub 申请的证书下载到服务器后,您可以使用以下标准模板。建议路径:/etc/nginx/conf.d/

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

    # 证书文件路径
    ssl_certificate /etc/nginx/ssl/fullchain.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;

    # SSL 优化参数
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;

    # 协议与加密套件
    ssl_protocols TLSv1.2 TLSv1.3;
    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_prefer_server_ciphers off;

    # HSTS 增强安全
    add_header Strict-Transport-Security "max-age=63072000" always;

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

关键参数项详解

理解每一个参数的含义对于平衡安全性和兼容性至关重要。

参数项 说明 可选/推荐值
ssl_certificate 指定 PEM 格式的证书链文件路径(含中间证书)。 绝对路径。
ssl_certificate_key 指定与证书匹配的本地私钥文件路径。 绝对路径。
ssl_protocols 启用的 TLS 协议版本。 TLSv1.2 TLSv1.3 (推荐)
ssl_ciphers 定义的加密套件列表。 推荐使用现代加密标准(如 GCM 模式)。
ssl_prefer_server_ciphers 是否优先使用服务器定义的加密套件。 on / off (现代协议建议 off)。

安全加固与优化

1. 强制 HTTP 跳转 HTTPS

为了确保所有访问都是加密的,请配置 80 端口自动重定向。

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

2. 启用 HTTP/2

listen 443 ssl 后面加上 http2。它能通过多路复用显著提升 HTTPS 网页的加载速度。

3. HSTS (安全传输机制)

通过 Strict-Transport-Security 响应头,通知浏览器该网站在未来一段时间内只允许通过 HTTPS 访问,防止协议降级攻击。

专家建议: 如果您的业务主要面向现代浏览器,建议只保留 TLS 1.2TLS 1.3。TLS 1.0 和 1.1 已被视为不安全,且会降低安全评估分数。

四、 验证配置并生效

在重启 Nginx 之前,务必检查语法是否正确:

sudo nginx -t

# 如果提示 syntax is ok,则重启
sudo systemctl reload nginx