必须关闭 sslcompression,因其在加密前使用 lz77 压缩,使 crime 攻击可通过密文长度变化窃取 cookie 等敏感信息;apache 中需显式配置 sslcompression off 并验证运行时状态。

必须关闭 SSLCompression,这不是权衡问题,而是确定性风险。CRIME 攻击利用 TLS 压缩的长度侧信道,可窃取 Cookie、CSRF Token 等敏感信息,现代环境已无保留理由。
为什么 SSLCompression 必须关
SSLCompression 是 TLS 层的 LZ77 压缩(RFC 3749),发生在加密前。CRIME 攻击者通过反复诱导浏览器发送含目标 Cookie 的请求,并观察密文长度变化,就能逐字节还原 Cookie 内容。该漏洞自 2012 年公开后,主流浏览器和 OpenSSL ≥1.0.0 已默认禁用,但 Apache 配置中若显式启用或未明确关闭,仍可能激活。
如何确认是否开启
别只查配置文件,运行时状态才真实:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 执行 openssl s_client -connect your-domain.com:443 -tls1_2,查看输出中是否有 Compression: zlib 或类似字样——有即为开启
- 检查 Apache 配置中是否误写 SSLCompression on,或在旧版中用了 -COMPRESS(如 SSLProtocol all -SSLv3 -COMPRESS)
- 确认没把 mod_deflate(HTTP 层压缩)和 SSLCompression 混为一谈:前者作用于明文响应体,与 CRIME 无关;但若在 HTTPS 下无差别压缩所有响应,可能引发客户端解析异常
正确关闭的三步操作
Apache 2.4.8+ 默认禁用,但显式关闭更稳妥。该指令只能放在服务器级或 <virtualhost></virtualhost> 块内,不能写在 .htaccess 中:
- 在主配置(如 /etc/apache2/mods-available/ssl.conf)或对应虚拟主机块中添加:SSLCompression off
- 若使用极旧版本(如 Apache SSLProtocol all -SSLv2 -SSLv3 -COMPRESS
- 重启后验证:apachectl configtest && systemctl reload apache2,再跑一次 openssl 测试,确认 Compression: 行彻底消失
顺带注意 mod_deflate 的使用边界
HTTPS 站点上,mod_deflate 不是 TLS 压缩,但不当使用仍有隐患:
- 避免对 /login、/api、/admin 等敏感路径启用 gzip 压缩
- 确保 Set-Cookie 响应头不被压缩(某些旧客户端会拒绝含 Content-Encoding 的 Set-Cookie)
- 用 curl -I https://yoursite.com 查看响应头,若出现 Content-Encoding: gzip,需检查 mod_deflate 规则是否过度宽松










