要真正防范中间人攻击,必须强制tlsv1.2/tlsv1.3、禁用sslv2/v3及tls1.0/1.1,配置强加密套件(如ecdhe-aes-gcm)、启用hsts与csp,并通过openssl和ssl labs实测验证。

要真正防范中间人攻击(MITM),光开 HTTPS 远不够。核心是强制高安全协议、禁用所有已知脆弱环节、叠加应用层防护策略,并确保每次连接都不可降级。Nginx 是最常用场景,以下配置逻辑通用性强,适用于绝大多数生产环境。
强制 TLS 1.2/1.3 并彻底关闭老旧协议
SSLv2/v3、TLS 1.0/1.1 已被标准组织正式弃用,存在 POODLE、BEAST 等可利用漏洞,必须显式禁用:
- 在 http 或 server 块中写入:
ssl_protocols TLSv1.2 TLSv1.3; - 确认 OpenSSL 版本 ≥ 1.1.1(运行
nginx -V 2>&1 | grep OpenSSL验证);若低于此版本,TLS 1.3 不可用,需先升级底层库。 - 不要写
TLSv1.1或更旧版本——哪怕只留一个空格,也可能被客户端协商回退。
限定高强度加密套件,剔除全部弱算法
RC4、DES、3DES、MD5、SHA1、CBC 模式等已被证明不安全,应从套件列表中完全移除:
一款AI工具,主要用于Monitor and clean up invalid Codex authentication files in CPA. Check quota status, disable files returning 401 errors, and perform dual verification before deletion.,适合需要提升相关任务效率的用户。
- 优先使用前向保密(PFS)+ AEAD 模式组合,例如:
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; - 显式声明 TLS 1.3 套件(即使默认启用,也建议明确):
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256'; - 设置
ssl_prefer_server_ciphers off;(TLS 1.3 下无效但保留兼容性);避免客户端主导协商弱算法。
启用 HSTS 与 CSP,堵住协议降级和混合内容漏洞
HSTS 强制浏览器只走 HTTPS,CSP 阻断非授权脚本执行,二者配合能显著提升 MITM 防御纵深:
- HSTS 头需带
includeSubDomains和preload(若计划提交至浏览器预加载列表):add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; - CSP 推荐至少启用
upgrade-insecure-requests,自动将页面内 HTTP 资源升级为 HTTPS:add_header Content-Security-Policy "upgrade-insecure-requests;" always; - 如需更强控制,可扩展为完整策略,例如限制 script-src、connect-src 等来源域。
验证配置生效并建立持续维护机制
配置写完不等于防护生效。中间人攻击防护是动态过程,必须实测+复核:
- 用 OpenSSL 手动测试协议支持:
openssl s_client -connect yoursite.com:443 -tls1_2openssl s_client -connect yoursite.com:443 -tls1_3 - 访问 SSL Labs Test 获取详细评分、协商结果与潜在降级风险提示。
- 定期检查证书有效期、密钥长度(推荐 RSA 2048+/ECDSA secp384r1)、服务器标识是否隐藏(
server_tokens off;)。










