直接禁用弱协议、剔除不安全算法、强制服务端优先选择,并配合HSTS和OCSP Stapling,就能从握手源头堵住降级路径,大幅压缩中间人攻击空间:需配置ssl_protocols TLSv1.2 TLSv1.3、强ssl_ciphers并启用ssl_prefer_server_ciphers on,add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always,以及ssl_stapling on等完整安全策略。
直接禁用弱协议、剔除不安全算法、强制服务端优先选择,并配合 HSTS 和 OCSP Stapling,就能从握手源头堵住降级路径,大幅压缩中间人攻击空间。
SSLv3、TLSv1.0 和 TLSv1.1 已被证实存在 POODLE、BEAST 等严重漏洞,必须显式关闭:
server 或 http 块中设置:ssl_protocols TLSv1.2 TLSv1.3;
攻击者常在 ClientHello 中篡改密码套件列表,诱导服务端选弱组合;只要 Nginx 的 ssl_ciphers 里不含 RC4、DES、3DES、MD5、SHA1、EXPORT、NULL 等,就无“可降之级”:
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_prefer_server_ciphers on;,确保服务端按自己排序选套件,而非客户端偏好DEFAULT 或 HIGH,它们可能引入已被淘汰的算法防止用户手动输入 http:// 或点击 HTTP 链接导致协议降级,也削弱 SSL stripping 类中间人攻击:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
preload 表示可提交至浏览器 HSTS 预加载列表,首次访问即强制 HTTPS传统 OCSP 查询需客户端直连 CA,易被阻断或延迟,攻击者可借此伪造过期/吊销证书;OCSP Stapling 由 Nginx 主动获取并随握手下发,既提速又防绕过:
ssl_stapling on; ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/ca-bundle.crt;
resolver 8.8.8.8 1.1.1.1 valid=300s;