apache tls配置调优需平衡安全性、性能与兼容性:禁用sslv2/3及tls 1.0/1.1,启用ecdhe前向保密套件,开启会话复用与ocsp装订,并配合event mpm及内核参数优化提升效率。

Apache 的 TLS 配置调优不是简单改几行参数,而是围绕安全性、性能与兼容性三者做平衡。核心目标是:禁用已知风险协议和算法,启用现代加密机制,同时确保握手高效、连接可复用。
禁用不安全协议与弱密码套件
SSLv2/SSLv3 和 TLS 1.0/1.1 已被证实存在严重漏洞(如 POODLE、BEAST),必须显式禁用;同时避免使用含 RSA 密钥交换、MD5、SHA-1、NULL 或 EXPORT 等标识的套件:
- 在虚拟主机或主配置中设置:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 - 指定强且支持前向保密(PFS)的套件:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 - 追加安全约束:
SSLHonorCipherOrder on(强制按服务器顺序协商,而非客户端优先)
SSLCompression off(禁用压缩,防 CRIME 攻击)
启用会话复用降低握手开销
完整 TLS 握手消耗 CPU 和网络往返,高并发下极易成为瓶颈。应同时启用两种复用机制:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
服务端会话缓存:用 shmcb 共享内存后端,避免进程间重复缓存
→ SSLSessionCache shmcb:/var/cache/apache2/ssl_scache(10485760)
→ SSLSessionCacheTimeout 300(单位秒,超时自动清理) -
会话票据(Session Tickets):客户端持加密票据复用会话,不依赖服务端存储
→ SSLSessionTickets on
→ 可选配密钥轮换:SSLStaplingCache "shmcb:..." + SSLStaplingResponderTimeout
强制 HTTPS 并增强传输层防护
防止协议降级和中间人劫持,需从响应头和底层行为两层加固:
- 启用 HSTS(HTTP Strict Transport Security):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" - 开启 OCSP 装订(OCSP Stapling),减少证书状态查询延迟:
SSLUseStapling on
SSLStaplingCache shmcb:/var/cache/apache2/ocsp(128000) - 关闭不必要 HTTP 方法,缩小攻击面:
Deny from all
配合内核与 MPM 提升 TLS 效率
TLS 性能不仅取决于 Apache 配置,还受操作系统和运行模型制约:
- 切换为 event MPM(非 prefork),支持异步处理 HTTPS 连接,节省内存并提升并发能力
- 增大 TCP 缓冲区(尤其对大响应体场景):
net.ipv4.tcp_rmem="4096 524288 16777216"
net.core.rmem_max=16777216 - 确认 OpenSSL 版本 ≥ 1.1.1(支持 TLS 1.3);若硬件支持 AES-NI,OpenSSL 会自动启用加速










