应配置sslprotocol all -sslv2 -sslv3 -tlsv1 -tlsv1.1并配合sslciphersuite high:!anull:!md5:!3des:!rc4:!des:!export:!psk:!srp:!camellia,确保禁用不安全协议与弱算法,且需验证apache≥2.2.23、openssl≥1.0.1及mod_ssl已启用。

在 Apache 中禁用 SSLv3 和 TLS 1.0 是满足 PCI DSS、等保2.0 及主流安全扫描(如 Nessus、绿盟、腾讯云安扫)的硬性要求。关键不是“只开新协议”,而是明确排除旧协议,且配置需生效于实际监听的虚拟主机或全局 SSL 上下文。
确认环境是否支持
禁用操作前需验证基础组件版本:
- Apache ≥ 2.2.23(推荐 2.4.29+):运行 httpd -v 查看
- OpenSSL ≥ 1.0.1(推荐 1.1.1+):运行 openssl version 查看
- 确保 mod_ssl 已启用:检查 httpd.conf 中 LoadModule ssl_module modules/mod_ssl.so 未被注释
修改 SSLProtocol 指令(核心步骤)
找到 Apache 的 SSL 配置文件,常见路径包括:
- /etc/httpd/conf.d/ssl.conf(CentOS/RHEL)
-
/etc/apache2/mods-available/ssl.conf 或站点配置中的
块(Ubuntu/Debian) - /usr/local/apache/conf/extra/httpd-ssl.conf(源码安装)
在对应 SSL 启用块内(如 SSLEngine on 下方),设置:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
该写法明确禁用所有不安全协议,仅保留 TLSv1.2 及以上(若 OpenSSL 和 Apache 版本支持 TLSv1.3,也会自动启用)。避免使用 SSLProtocol TLSv1.2 这类白名单式写法——它在旧版 Apache 中可能被忽略或覆盖。
同步加固加密套件(防降级与弱算法)
仅禁协议不够,还需淘汰不安全密码套件。在同一配置块中添加:
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES:!RC4:!DES:!EXPORT:!PSK:!SRP:!CAMELLIA
说明:
- HIGH 优先选择强加密套件(如 AES-GCM、CHACHA20)
- !3DES 和 !RC4 淘汰已知易受攻击的算法
- !aNULL 禁用无认证套件,!EXPORT 阻止出口级弱密钥
验证配置是否生效
完成修改后务必执行:
- 语法检查:apachectl configtest 或 httpd -t
- 重启服务:systemctl restart httpd(或 service apache2 restart)
- 本地测试:openssl s_client -connect yourdomain.com:443 -tls1_1 应连接失败;-tls1_2 应成功并显示 Protocol : TLSv1.2
- 线上验证:使用 SSL Labs Test 或腾讯云“网站安全检测”工具,确认 SSLv3/TLS 1.0 显示为 No











