应禁用aNULL、MD5、SHA1、RC4、3DES、DES、EXPORT、PSK、SRP、CAMELLIA等弱算法,启用ECDHE/DHE前向保密套件及AES-GCM/CHACHA20强加密,并设置SSLHonorCipherOrder on确保服务器优先级生效。
直接在 apache 的 ssl 配置中禁用弱密码套件,核心是正确设置 sslciphersuite 指令,并配合 sslhonorcipherorder on 确保服务器优先级生效。
明确禁用已知不安全的算法
弱密码套件通常包含以下几类高危成分:匿名密钥交换(aNULL)、导出级密钥(EXPORT)、MD5/SHA1 哈希、RC4 流加密、3DES 分组加密、弱密钥长度(如 DES、SEED、IDEA)等。应在 SSLCipherSuite 中显式排除:
-
!aNULL:禁止无身份认证的连接(如 ADH、AECDH) -
!MD5、!SHA1(或更细粒度的!RSA-MD5):淘汰已被攻破的哈希算法 -
!RC4、!3DES、!DES:禁用 RC4(BEAST/Bar Mitzvah)、3DES(SWEET32)等存在实际攻击路径的套件 -
!EXPORT、!PSK、!SRP、!CAMELLIA:移除出口限制套件、预共享密钥及非主流/低强度算法
优先启用前向保密与现代强套件
仅“排除”不够,还需主动指定推荐组合,确保即使客户端支持旧套件,服务器也只协商强方案。推荐使用以 ECDHE 或 DHE 开头、AES-GCM 或 CHACHA20-POLY1305 为对称加密、SHA256/SHA384 为摘要的套件:
- 例如:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 - TLS 1.3 用户可单独配置专用套件:
TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256(注意:TLS 1.3 套件不能与 TLS 1.2 混用) - 若需兼顾较老客户端(如 IE11/Win7),可追加
ECDHE-RSA-AES128-SHA256等兼容项,但避免引入SHA1或RC4
强制服务器套件顺序生效
很多客户端(尤其旧版本)会按自身偏好列表发起协商,若不干预,可能选中你未禁用但排在前面的弱套件。必须启用:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
SSLHonorCipherOrder on
该指令让 Apache 忽略客户端顺序,严格按 SSLCipherSuite 中从左到右的优先级选择首个匹配项。这是防止降级攻击的关键一环。
验证是否真正生效
配置后务必验证,不能仅依赖语法检查:
- 本地测试:
openssl s_client -connect yourdomain.com:443 -cipher "RC4" -tls1_2应失败;而-cipher "ECDHE-RSA-AES128-GCM-SHA256"应成功并显示握手信息 - 线上扫描:使用 SSL Labs Test 查看 “Handshake Simulation” 表格,确认主流浏览器均协商到 AES-GCM 或 CHACHA20 套件,且无 RC4/3DES/MD5 出现
- 日志辅助(可选):开启
SSLLogLevel info并查看 error_log,TLS 握手时会记录最终选定的套件名

















