一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Nginx 如何在 Nginx 中配置 TLS 优化参数抵抗常见的 SSL 降级与中间人攻击

时间:2026-08-20 20:14:49 编辑:袖梨 来源:一聚教程网

直接禁用弱协议、剔除不安全算法、强制服务端优先选择,并配合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,就能从握手源头堵住降级路径,大幅压缩中间人攻击空间。

禁用老旧 TLS 协议版本

SSLv3、TLSv1.0 和 TLSv1.1 已被证实存在 POODLE、BEAST 等严重漏洞,必须显式关闭:

  1. serverhttp 块中设置:ssl_protocols TLSv1.2 TLSv1.3;
  2. 不要留空或依赖默认值——Nginx 旧版本默认可能仍启用 TLSv1.1
  3. TLSv1.3 不仅更安全,还天然剔除了 RSA 密钥交换和 CBC 模式等风险组件

精准配置 ssl_ciphers 阻断降级协商

攻击者常在 ClientHello 中篡改密码套件列表,诱导服务端选弱组合;只要 Nginx 的 ssl_ciphers 里不含 RC4、DES、3DES、MD5、SHA1、EXPORT、NULL 等,就无“可降之级”:

  1. 推荐配置(兼顾安全性与兼容性):

    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';

  2. 必须搭配 ssl_prefer_server_ciphers on;,确保服务端按自己排序选套件,而非客户端偏好
  3. 避免使用模糊通配符如 DEFAULTHIGH,它们可能引入已被淘汰的算法

启用 HSTS 强制浏览器走 HTTPS

防止用户手动输入 http:// 或点击 HTTP 链接导致协议降级,也削弱 SSL stripping 类中间人攻击:

  1. 添加响应头:add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
  2. preload 表示可提交至浏览器 HSTS 预加载列表,首次访问即强制 HTTPS
  3. 注意:开启后无法临时退回到 HTTP,上线前需确认全站资源均支持 HTTPS

启用 OCSP Stapling 提升证书可信验证效率

传统 OCSP 查询需客户端直连 CA,易被阻断或延迟,攻击者可借此伪造过期/吊销证书;OCSP Stapling 由 Nginx 主动获取并随握手下发,既提速又防绕过:

  1. 启用配置:ssl_stapling on; ssl_stapling_verify on;
  2. 指定可信 CA 包:ssl_trusted_certificate /etc/nginx/ssl/ca-bundle.crt;
  3. 配置 DNS 解析器(避免因 DNS 失败导致 stapling 失效):resolver 8.8.8.8 1.1.1.1 valid=300s;

热门栏目