SSLCompression必须关闭,无权衡余地;它因CRIME攻击可窃取Cookie而存在确定性风险,现代环境默认禁用,开启无性能收益,应显式配置SSLCompression off并验证生效。

SSLCompression 不需要、也不应该被用来“平衡”性能与安全——它必须关闭,没有权衡余地。
该指令控制的是 TLS 层的压缩功能(RFC 3749),早在 2012 年 CRIME 攻击公开后就被证实存在确定性风险:攻击者可通过密文长度变化推测加密 Cookie 内容,从而窃取会话凭证。现代 OpenSSL(1.0.0+)、主流浏览器和 Apache 2.4.8+ 均默认禁用,且实测表明开启后几乎不带来带宽或延迟收益,反而显著增加攻击面。
正确做法是彻底禁用,而非调整或保留
- 在
或主 SSL 配置块中添加:SSLCompression off
- 该指令仅在服务器级或虚拟主机级有效,不可写入
.htaccess - 重启前验证配置:
apachectl configtest - 重启后用
openssl s_client -connect example.com:443 -tls1_2检查输出,确认无Compression:字样
别混淆 mod_deflate 和 SSLCompressionmod_deflate 是 HTTP 层明文压缩(作用于响应体),与 TLS 压缩无关。它可用于提升传输效率,但需注意:
- 避免对含敏感头(如
Set-Cookie)的响应启用压缩 - 排除登录、API 等路径:例如用
SetOutputFilter NONE - 查看响应头是否误带
Content-Encoding: gzip,尤其在 HTTPS 下
其他真正影响性能与安全的关键项
若关注传输效率与防护能力的协同优化,应聚焦以下可落地配置:
-
强制 TLS 1.2/1.3,禁用旧协议:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 使用高效密码套件(优先 ECDHE + AES-GCM):
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384启用 OCSP Stapling 减少吊销查询延迟:
SSLUseStapling onSSLStaplingCache "shmcb:logs/ssl_stapling(512000)"合理配置会话缓存复用连接:
SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)
不复杂但容易忽略。











