如何在CentOS 7的Apache 2.4中禁用CBC密码套件
解决Apache 2.4中禁用CBC密码套件的问题
我来帮你搞定这个CBC密码套件的禁用问题 —— 首先,testssl扫描出的告警确实是因为CBC模式的套件存在潜在漏洞风险(比如BEAST、Lucky13这类旧漏洞,虽然现代浏览器有防御机制,但合规扫描通常会要求禁用)。
步骤1:修改SSLCipherSuite配置
你现有的SSLCipherSuite规则没有明确排除CBC模式的套件,所以需要调整这个配置项,有两种实用方式:
方式一:在现有规则基础上添加!CBC
直接在你当前的配置末尾追加!CBC,修改后如下:
SSLCipherSuite HIGH:!aNULL:!eNULL:!kECDH:!aDH:!RC4:!3DES:!CAMELLIA:!MD5:!PSK:!SRP:!KRB5:!CBC:@STRENGTH
这种方式会保留你原本的HIGH等级筛选逻辑,同时自动剔除所有CBC模式的套件。
方式二:直接指定安全的非CBC套件(更推荐)
为了更精准控制加密套件,直接列出只允许的非CBC套件(比如GCM、CHACHA20-POLY1305这类AEAD模式的套件,它们属于现代加密标准,没有CBC相关风险且安全性更高),配置如下:
SSLCipherSuite 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:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
步骤2:优化SSL协议版本(可选但建议)
你当前启用了TLSv1.1和TLSv1.2,但TLSv1.1本身依赖CBC套件较多,且已被多数安全标准标记为过时。如果你的业务场景允许,建议只保留TLSv1.2和TLSv1.3(需要Apache 2.4.36+和OpenSSL 1.1.1+支持),配置修改为:
SSLProtocol -All +TLSv1.2 +TLSv1.3
如果环境不支持TLSv1.3,至少确保只启用TLSv1.2。
步骤3:验证配置并重启Apache
- 先检查Apache配置语法是否正确:
apachectl configtest - 如果输出
Syntax OK,重启Apache服务:systemctl restart httpd # 系统不同也可使用 service httpd restart - 最后用testssl重新扫描验证:
./testssl -U mydomain.com
此时应该不会再出现CBC套件的告警了。
额外注意事项
- 如果你的Apache版本较旧,可能不支持某些新套件(比如CHACHA20-POLY1305),可以根据实际情况调整套件列表。
- 确保OpenSSL版本为最新稳定版,旧版本可能存在未修复的安全漏洞。
内容的提问来源于stack exchange,提问作者towa_ga




