跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

怎么在Apache中配置SSLOpenSSLConfCmd禁用特定版本会话恢复以增强安全性

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 缓存(那是
SSLSessionCache
和
SSLSessionCacheTimeout
的职责),而是用于关闭易受攻击的 重协商 和 票据协商 行为。 关键配置:用 Options 禁用 UnsafeLegacyRenegotiation TLS 1.2 及更早版本中,未认证的重协商(legacy renegotiation)是中间人攻击(如 CVE-2009-3555)的根源。OpenSSL 提供了
-UnsafeLegacyRenegotiation
标志来彻底禁用它——这是最直接、最有效的加固手段。 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 说明:
-SessionTicket
直接禁用票据协商流程;
-ExtendedMasterSecret
是 TLS 1.2 的扩展,可缓解重协商攻击,建议与
-UnsafeLegacyRenegotiation
同时启用; 两者叠加后,客户端只能使用 Session ID 方式恢复(且前提是重协商已被禁,Session ID 恢复本身是安全的)。 验证是否生效 配置完成后务必验证: 运行
httpd -t
确保语法无误; 重启 Apache; 用
openssl s_client -connect yoursite:443 -tls1_2
连接,观察输出中是否含
Secure Renegotiation IS NOT supported
; 用
openssl s_client -connect yoursite:443 -reconnect
测试重连,确认不出现
RENEGOTIATING
提示。 禁用这些机制不会影响 TLS 1.3 的 PSK 恢复(它是加密安全的),也不会降低性能——现代浏览器普遍支持 0-RTT 或快速 Session ID 复用,安全性与效率兼顾。

相关文章