关键在于优先选用ecdhe+aead组合(如ecdhe-rsa-aes128-gcm-sha256、ecdhe-rsa-chacha20-poly1305),禁用rsa密钥交换、cbc模式及sha1/md5/rc4等弱算法,并启用sslhonorcipherorder on强制服务端排序,确保硬件加速算法被实际协商使用。

调高加解密效率的关键不是堆砌更多套件,而是让 Apache 在协商时**优先选中计算开销小、硬件加速支持好、且安全达标的那几个**。密码套件顺序直接影响握手阶段的算法选择,而现代 CPU 对 AES-GCM 和 ChaCha20 有良好优化,RSA 密钥交换和 CBC 模式反而拖慢速度。
只留 ECDHE + AEAD 组合,砍掉低效路径
AEAD(如 AES-GCM、ChaCha20-Poly1305)模式一次完成加密与认证,比传统 CBC+HMAC 少一轮计算;ECDHE 密钥交换比 RSA 快数倍,且自带前向保密。必须剔除所有非 AEAD、非 PFS 的套件:
- 禁用 RSA 密钥交换(!kRSA),它不支持前向保密,且签名验签耗 CPU
- 禁用 CBC 模式(!CBC),易受 Lucky13 等侧信道攻击,软件实现慢
- 禁用 SHA-1、MD5、RC4、DES 等已淘汰算法(!SHA1:!MD5:!RC4:!DES)
- 保留最小强集示例:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-CHACHA20-POLY1305
强制服务器排序,不让客户端“挑便宜的”
默认情况下,客户端可从自己支持的套件中任选一个,哪怕它很旧很慢。启用 SSLHonorCipherOrder on 后,Apache 才会按你写的顺序从左到右匹配首个双方都支持的套件——这确保了高效算法真正被用上。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
该指令必须放在 <virtualhost></virtualhost> 块内或主 SSL 配置段中,否则无效。
适配客户端能力,避免降级失败重试
如果最靠前的套件(比如 ECDSA+X25519)客户端不支持,Apache 会继续往下找。但若列表里混入 TLS 1.2 不支持的 TLS 1.3 套件(如 TLS_AES_128_GCM_SHA256),或服务端没启用 TLS 1.3,就会导致协商失败、重试甚至连接中断。
- 确认 SSLProtocol 已启用 TLSv1.2 和 TLSv1.3(如
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3) - TLS 1.3 套件无需写进 SSLCipherSuite,它由协议自动协商;你只需为 TLS 1.2 精排
- 对老旧终端(如 IE11/Win7)需兼容时,把
ECDHE-RSA-AES128-GCM-SHA256放最前,比 ECDSA 更通用
验证是否真正生效
改完别急着重启,先用命令确认实际协商结果:
- 测试 TLS 1.2:
openssl s_client -connect example.com:443 -tls1_2,看输出中 Cipher 行是否为你指定的第一个套件 - 测试 TLS 1.3:
openssl s_client -connect example.com:443 -tls1_3,注意它不走 SSLCipherSuite,而是独立协商 - 用 SSL Labs 测试页 查看“Handshake Simulation”,观察各浏览器实际拿到的套件










