SSLOpenSSLConfCmd 不能直接禁用某版本会话恢复,但可通过 Options 禁用不安全的 UnsafeLegacyRenegotiation 和 SessionTicket 机制,配合 ExtendedMasterSecret 提升 TLS 1.2 安全性。
SSLOpenSSLConfCmd 本身不直接提供“禁用某版本会话恢复”的独立开关,但它能通过 OpenSSL 底层配置项精准控制会话恢复行为,尤其是针对 TLS 1.2 及更早版本中不安全的会话重协商(legacy renegotiation)和会话票据(session tickets)机制。真正要禁用的是这些具体实现方式,而非笼统的“某版本会话恢复”。
明确目标:禁用不安全的会话恢复机制
Apache 的 SSL/TLS 会话恢复主要依赖两种方式:
Session ID 复用(TLS 1.2 及之前)
:由服务器维护会话缓存(如 shmcb),客户端携带 session_id 尝试复用。该机制本身可控,但若配合不安全的重协商,风险陡增。
Session Tickets(RFC 5077)
:客户端保存加密票据,下次连接时提交。若票据密钥长期不变或未轮换,可能被解密回溯会话。
SSLOpenSSLConfCmd 不用于关闭 Session ID 缓存(那是
和
的职责),而是用于关闭易受攻击的
重协商
和
票据协商
行为。
关键配置:用 Options 禁用 UnsafeLegacyRenegotiation
TLS 1.2 及更早版本中,未认证的重协商(legacy renegotiation)是中间人攻击(如 CVE-2009-3555)的根源。OpenSSL 提供了
标志来彻底禁用它——这是最直接、最有效的加固手段。
Apache 2.4.62
PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
下载
在
或服务器级配置中添加:
SSLOpenSSLConfCmd Options -UnsafeLegacyRenegotiation
注意:
– 必须带减号(
),表示“关闭”;
– 拼写必须完全一致,大小写敏感;
– 该指令仅在 Apache 2.4.11+ + OpenSSL 1.0.2+ 环境下生效,旧版会静默忽略。
补充加固:禁用 Session Tickets(可选)
若你不需要或不信任服务端票据密钥管理能力,可一并禁用 Session Tickets 协商:
添加以下指令(同样在
内):
SSLOpenSSLConfCmd Options -ExtendedMasterSecret -SessionTicket
说明:
直接禁用票据协商流程;
是 TLS 1.2 的扩展,可缓解重协商攻击,建议与
同时启用;
两者叠加后,客户端只能使用 Session ID 方式恢复(且前提是重协商已被禁,Session ID 恢复本身是安全的)。
验证是否生效
配置完成后务必验证:
运行
确保语法无误;
重启 Apache;
用
连接,观察输出中是否含
;
用
测试重连,确认不出现
提示。
禁用这些机制不会影响 TLS 1.3 的 PSK 恢复(它是加密安全的),也不会降低性能——现代浏览器普遍支持 0-RTT 或快速 Session ID 复用,安全性与效率兼顾。
SSLSessionCacheSSLSessionCacheTimeout-UnsafeLegacyRenegotiation--SessionTicket-ExtendedMasterSecret-UnsafeLegacyRenegotiationhttpd -topenssl s_client -connect yoursite:443 -tls1_2Secure Renegotiation IS NOT supportedopenssl s_client -connect yoursite:443 -reconnectRENEGOTIATING