最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
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 等严重漏洞,必须显式关闭:
- 在
server或http块中设置:ssl_protocols TLSv1.2 TLSv1.3; - 不要留空或依赖默认值——Nginx 旧版本默认可能仍启用 TLSv1.1
- TLSv1.3 不仅更安全,还天然剔除了 RSA 密钥交换和 CBC 模式等风险组件
精准配置 ssl_ciphers 阻断降级协商
攻击者常在 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,它们可能引入已被淘汰的算法
启用 HSTS 强制浏览器走 HTTPS
防止用户手动输入 http:// 或点击 HTTP 链接导致协议降级,也削弱 SSL stripping 类中间人攻击:
- 添加响应头:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; -
preload表示可提交至浏览器 HSTS 预加载列表,首次访问即强制 HTTPS - 注意:开启后无法临时退回到 HTTP,上线前需确认全站资源均支持 HTTPS
启用 OCSP Stapling 提升证书可信验证效率
传统 OCSP 查询需客户端直连 CA,易被阻断或延迟,攻击者可借此伪造过期/吊销证书;OCSP Stapling 由 Nginx 主动获取并随握手下发,既提速又防绕过:
- 启用配置:
ssl_stapling on; ssl_stapling_verify on; - 指定可信 CA 包:
ssl_trusted_certificate /etc/nginx/ssl/ca-bundle.crt; - 配置 DNS 解析器(避免因 DNS 失败导致 stapling 失效):
resolver 8.8.8.8 1.1.1.1 valid=300s;
相关文章
- EvoQuality - 字节跳动开源的图像质量评估模型 08-20
- MiniMax核心工程负责人阿岛离职 08-20
- Jsoup代码解读之一-概述 08-20
- 小米路由器cr6608移动版电信能用吗(小米路由器CR6608移动版是否支持电信网络) 08-20
- 电脑专业主要学什么?具体专业具体分析 08-20
- 人工评估 | 人工标注员 08-20