apache tls加密套件优化核心是禁用sslv2/v3、tls1.0/1.1及弱算法,启用tls1.2/1.3与ecdhe类前向保密套件,如ecdhe-ecdsa-aes128-gcm-sha256等,并配置sslhonorcipherorder on确保服务端优先选择强套件。
apache 中 tls 参数配置的加密密码套件优化,核心是禁用不安全算法、启用现代强加密组合,并匹配 tls 协议版本。当前(2026年)推荐以 tls 1.2 和 tls 1.3 为基准,彻底淘汰 sslv2/v3、tls 1.0/1.1 及弱密钥交换或认证机制。
明确禁用过时协议和弱算法
在虚拟主机或全局 SSL 配置块中,使用 SSLProtocol 和 SSLCipherSuite 指令精准控制:
- SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3:显式关闭所有已知存在漏洞的旧协议,仅保留 TLS 1.2 和 1.3
-
SSLCipherSuite 应避免泛用
HIGH这类模糊关键字,改用明确、可审计的组合,例如:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 - 务必排除含
aNULL(无认证)、eNULL(无加密)、EXPORT(出口级弱密钥)、MD5、SHA1、RC4、DES、3DES的套件
启用前向保密与服务端密码优先
确保每次会话密钥独立生成,即使私钥未来泄露,历史通信仍不可解密:
Apache 2.4.62 官方 tar.gz 源码包是 Linux 及类 Unix 系统构建 Web 服务器的核心基础。通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
- 添加 SSLHonorCipherOrder on:强制服务器按配置顺序选择密码套件,而非客户端提议顺序
- 确认所选套件均基于
ECDHE或DHE密钥交换(如ECDHE-RSA),这是实现完美前向保密(PFS)的前提 - 避免使用
RSA密钥交换(如RSA-AES),它不具备前向保密能力
适配 TLS 1.3 并精简配置
TLS 1.3 已大幅简化密码套件设计,仅保留 AEAD 类型(如 AES-GCM、ChaCha20-Poly1305),且密钥交换与认证机制分离。Apache 2.4.48+ 支持原生 TLS 1.3:
- 无需在 SSLCipherSuite 中为 TLS 1.3 单独指定套件——它由 SSLProtocol 启用后自动生效
- 若需微调 TLS 1.3 行为(如禁用 ChaCha20),可通过 OpenSSL 配置文件或启动参数控制,但通常默认组合已足够安全
- 注意:TLS 1.3 不兼容传统
SSLSessionCache方式,应改用 SSLSessionCache shmcb 或更现代的ssl_session_cache指令(取决于 Apache 版本)
验证与持续维护
配置完成后必须验证效果,不能仅依赖语法检查:
- 用 openssl s_client -connect yoursite.com:443 -tls1_2 和 -tls1_3 分别测试握手是否成功、返回的 Cipher 值是否符合预期
- 提交至 SSL Labs 扫描,重点关注 “Handshake Simulation” 中各浏览器/客户端协商出的协议与套件
- 定期复查 OpenSSL 版本(建议 ≥ 1.1.1w 或 3.0.13+),老旧版本可能存在已知绕过缺陷,影响套件实际生效逻辑










