apache启用tls 1.2+并禁用老旧协议,需配置sslprotocol all -sslv2 -sslv3 -tlsv1 -tlsv1.1 +tlsv1.2 +tlsv1.3,搭配强套件如ecdhe-ecdsa-aes256-gcm-sha384等,启用sslhonorcipherorder on及ocsp stapling,确保前向保密与a+评级。

在 Linux 中配置 Apache 启用现代加密套件,核心目标是禁用已知不安全的旧协议和算法(如 SSLv2/SSLv3、RC4、MD5、SHA-1、EXPORT 密码),强制使用 TLS 1.2 或 TLS 1.3,并优先协商强加密算法(如 AES-GCM、ChaCha20),从而有效防范 POODLE、BEAST、FREAK 等历史漏洞,同时提升前向保密能力。
启用 TLS 1.2+ 并禁用老旧协议
Apache 默认可能仍允许 TLS 1.0/1.1,必须显式关闭:
- 编辑 SSL 虚拟主机配置(如 /etc/apache2/sites-available/default-ssl.conf 或 /etc/httpd/conf.d/ssl.conf)
- 添加或修改 SSLProtocol 指令,仅保留安全协议:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 - 若使用 Apache 2.4.36+ 且 OpenSSL 1.1.1+,TLSv1.3 可直接启用;旧版本需确认支持再配置
配置强密码套件并启用前向保密
密码套件顺序决定协商优先级,应把 ECDHE 和 AEAD 类算法排在最前:
- 设置 SSLCipherSuite(Apache 2.4.36+ 推荐用 SSLProxyCipherSuite 配合反向代理):
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 - 搭配启用前向保密关键指令:
SSLHonorCipherOrder onSSLOptions +StrictRequire - 避免使用
!aNULL!eNULL等模糊写法,明确列出推荐套件更可控
强化密钥交换与证书参数
仅靠密码套件不够,还需确保密钥材料足够强壮:
- 指定最小 DH/ECDH 参数强度:
SSLOptions +StrictRequireSSLDHParamFile /etc/ssl/private/dhparam.pem(需提前生成 2048 位以上 DH 参数) - 使用 ECDSA 或 RSA 2048+ 证书;若用 RSA,私钥至少 2048 位,推荐 3072 位
- 启用 OCSP Stapling 减少证书校验延迟并增强吊销检查:
SSLUseStapling onSSLStaplingCache shmcb:/var/run/apache2/stapling_cache(128000)
验证与生效
配置完成后必须验证是否真正生效:
- 语法检查:
sudo apachectl configtest(Debian/Ubuntu)或sudo httpd -t(RHEL/CentOS) - 重启服务:
sudo systemctl restart apache2或sudo systemctl restart httpd - 用在线工具(如 SSL Labs Test)扫描域名,确认协议版本、套件支持、前向保密状态及评级达到 A 或 A+
- 本地快速验证:
openssl s_client -connect yourdomain.com:443 -tls1_2查看协商结果











