apache强密码套件防御mitm的核心是禁用不安全算法、强制前向保密(pfs)、服务端优先协商(sslhonorcipherorder on)并严格匹配tls 1.2/1.3协议,禁用sslv2-v3及tls 1.0/1.1,选用ecdhe+aes-gcm/chacha20-poly1305类aead套件,关闭sslcompression防crime。

Apache 开启强密码套件是防御中间人攻击(MITM)的关键一环,核心在于禁用不安全算法、强制前向保密(PFS)、按服务器优先级协商,并与协议版本严格对齐。
明确协议基础,先禁旧再选套件
密码套件必须和启用的 TLS 协议匹配,否则配置无效。中间人常利用协议降级或弱算法切入,所以第一步是彻底关闭已知风险协议:
- 在虚拟主机或主配置中写明:SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1(生产环境只留 TLSv1.2 和 TLSv1.3)
- 若需兼容 Win7+IE11 或 Java 7u95,可保留 TLSv1.2,但绝不可放开 TLSv1.0/1.1
- TLSv1.3 原生套件(如 TLS_AES_256_GCM_SHA384)不参与 SSLCipherSuite 设置,由 OpenSSL 自动协商,无需手动写入
选用带前向保密和 AEAD 的套件组合
前向保密确保即使私钥泄露,历史通信也无法被解密;AEAD 模式(如 AES-GCM、CHACHA20-POLY1305)比 CBC 更抗填充攻击,也杜绝了 BEAST、Lucky13 等漏洞。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 推荐 TLSv1.2 套件(兼顾安全与主流兼容):
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 - 必须排除:RSA(密钥交换)、CBC(如 AES128-CBC-SHA)、MD5/SHA1、DES/3DES、NULL/EXPORT
- 禁用模糊指令如 ALL 或 HIGH,它们会隐式引入已被淘汰的算法
强制服务端优先,防止客户端绕过
客户端可主动选择列表中靠后的弱套件,除非你明确告诉 Apache:“以我为准”:
- 务必添加:SSLHonorCipherOrder on
- 同时关闭压缩:SSLCompression off(防 CRIME 攻击)
- 搭配使用:SSLCipherSuite + SSLHonorCipherOrder on 才真正生效
验证是否真起作用,别信浏览器小锁图标
地址栏显示“锁”只代表建立了 HTTPS 连接,不代表用了强套件。很多弱套件仍能握手成功,只是不该被选中:
- 用命令行验证:
openssl s_client -connect example.com:443 -tls1_2 -cipher 'ECDHE',看返回是否包含 GCM 或 CHACHA20 - 用 SSL Labs 测试工具 扫描,重点看 “Handshake Simulation” 中老客户端(如 IE11、Android 4.4)是否回落到弱套件
- 检查日志:开启
SSLLogLevel info后,Apache error_log 会记录每次握手实际协商的套件名称










