Nginx怎么开启TLS 1.3?

2026-06-22T09:06:53

在 Nginx 中开启 TLS 1.3 并不是简单地添加一行配置,而是需要底层环境、协议声明、密码套件以及安全加固机制的协同配合。以下是完整的配置指南:

第一步:确认底层环境支持
在修改配置前,必须确保 Nginx 和 OpenSSL 的版本真实支持 TLS 1.3。
检查版本要求:Nginx 版本需 ≥ 1.13.0(生产环境推荐 ≥ 1.16.0),且编译时绑定的 OpenSSL 版本必须 ≥ 1.1.1。
验证命令:执行 nginx -V 2>&1 | grep -i openssl,确认输出中包含 OpenSSL 1.1.1 或 3.0+(若显示 1.0.2 或 1.1.0 则无效)。
检查密码套件:执行 openssl ciphers -v 'TLSv1.3',应至少输出三条标准套件,如 TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_AES_128_GCM_SHA256。

第二步:修改 Nginx 配置文件
打开 Nginx 配置文件(如 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 下的站点配置),在 server 块中进行以下精准配置:

声明支持的协议:为了兼顾安全性与兼容性,建议同时启用 TLS 1.2 和 TLS 1.3。

  ssl_protocols TLSv1.2 TLSv1.3;

(注:若仅写 TLSv1.3,会导致不支持该协议的旧客户端如 IE11、旧版 Android 直接断连。)

配置 TLS 1.3 专用密码套件:必须使用原生套件,且严禁混入任何非 TLS_ 开头的旧版套件。

  ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256;

关闭服务器密码优先级:TLS 1.3 的协商逻辑已重构,建议显式关闭此指令。

  ssl_prefer_server_ciphers off;

第三步:启用关键安全加固机制
TLS 1.3 协议本身不解决证书吊销验证延迟和中间人降级等问题,需同步配置以下参数:
启用 OCSP Stapling(减少握手延迟,防隐私泄露)
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
resolver_timeout 5s;

启用 HSTS 强制 HTTPS(防协议降级攻击)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

优化会话票据与曲线(支撑 0-RTT 并提升前向安全)
ssl_session_tickets on;
ssl_session_timeout 1d;
ssl_ecdh_curve X25519:secp384r1;

第四步:验证配置并重载服务
语法检查:执行 nginx -t 确保配置无语法错误。
重载服务:执行 systemctl reload nginx 使配置生效。
实测验证:
命令行测试:执行 openssl s_client -connect yourdomain.com:443 -tls1_3 2>/dev/null | grep Protocol,确认输出为 TLSv1.3。
在线扫描:使用 SSL Labs (ssllabs.com/ssltest/) 扫描,确认 Protocol Support 一栏明确列出 TLS 1.3。

⚠️ 安全红线提醒:
务必确保 SSL 私钥文件的权限设置为 600(即 chmod 600 /path/to/your_private.key),防止未授权访问导致证书泄露。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »