Apache反向代理优化TLS需三要素:OpenSSL≥1.1.1、显式启用+TLSv1.2+TLSv1.3、仅用PFS+AEAD密钥套件;辅以OCSP Stapling、会话复用和服务器优先套件排序。

Apache 反向代理本身不直接参与后端 Java 应用的 SSL/TLS 协商,它只负责客户端到 Apache 之间的加密连接。优化重点在于提升这一“前端 TLS 链路”的效率与安全性,而非修改后端应用配置。
启用现代 TLS 协议版本
只允许 TLS 1.2 和 TLS 1.3,禁用所有老旧协议。TLS 1.3 能显著减少握手延迟(1-RTT 或 0-RTT),且更安全。
- 在 ssl.conf 或虚拟主机配置中添加:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 - 确认 Apache 版本 ≥ 2.4.37,OpenSSL ≥ 1.1.1(否则 TLS 1.3 不可用)
- 避免写成
SSLProtocol TLSv1.3单独启用——这会关闭 TLS 1.2,导致部分旧客户端无法连接
精简并排序强密码套件
密码套件决定密钥交换、认证和加密方式。优先选用支持前向保密(PFS)和 AEAD 模式的组合,同时由服务器强制按序选择。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 推荐配置示例:
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 - 必须启用
SSLHonorCipherOrder on,否则客户端可自行选择弱套件 - 禁用 RSA 密钥交换(无前向保密)、SHA-1、RC4、DES、NULL 等已淘汰算法
启用 OCSP Stapling 加速证书验证
传统 OCSP 查询需客户端直连 CA,增加延迟和隐私风险。Stapling 由 Apache 主动获取并缓存吊销状态,在 TLS 握手中一并返回。
- 开启并配置缓存:
SSLUseStapling on<br>SSLStaplingCache "shmcb:logs/stapling-cache(150000)"<br>SSLStaplingResponderTimeout 5<br>SSLStaplingVerify on
- 确保证书链完整(含中间证书),否则 Stapling 无法生效
- 首次启用后观察日志,确认 stapling 响应是否成功加载(
ssl_engine_log中搜索 “stapling”)
合理配置会话复用机制
避免每次连接都执行完整握手,复用已有会话可大幅降低 CPU 开销与延迟。
- 使用共享内存缓存(推荐):
SSLSessionCache shmcb:/var/run/httpd/ssl_scache(512000)<br>SSLSessionCacheTimeout 300
- 若部署多台 Apache 实例,考虑用 memcached 或 Redis 替代 shmcb,实现跨节点会话共享
- 注意:会话缓存大小单位是字节,括号内数字为缓存总容量(非条目数);512000 ≈ 500KB,适合中等流量场景

















