是否有一些mod_ssl
配置魔法来确保CGI脚本/程序环境中的SSL_SESSION_ID
env var永远不会为空?我有多个Apache服务器,所有这些服务器都是2.4.x版本,当浏览器在初始连接时获取页面时,我看到了一个命中和未命中的结果。在某些浏览器(最新的MS Explorer)上,SSL_SESSION_ID
不为空。在最新的Firefox和Chrome上,SSL_SESSION_ID
只是空白。在浏览器中点击重新加载,SSL_SESSION_ID
按预期返回,SSL_SESSION_RESUMED
从“初始”更改为“恢复”。是的,“Initial”由于某种原因有一个大写字母“I”。
某些应用程序空间问题需要此env var。
有什么想法吗?
答案 0 :(得分:0)
显然唯一的方法是使用(不安全的)SSLv3:
在Red Hat网站上发现了一个解决方案,该网站声明SSLv3必须存在 SSLProtocol列表并没有承诺提供 TLS协议规范中的SSL_SESSION_ID。
因此,请将SSLProtocol配置更改为:
SSLProtocol +SSLv3 -TLSv1.1 -TLSv1 -TLSv1.2
说明:
通用网络浏览器发送"客户端Hello"带有" SessionTicket的消息 TLS"在TLS握手期间,数据长度的扩展= 0。如果 " SessionTicket TLS"(数据长度= 0)由客户端提供 服务器将处理会话票证而不是会话ID。 因此,服务器不会生成会话ID。在第二个 访问,它发送"客户端Hello"有一张会话券 在第一次访问时收到,服务器验证它,如果是,则验证它 有效,生成会话ID。此行为由RFC5077和 会话ID未出现在第一次访问时的原因 出现在第二次访问。这是一个不可避免的限制 使用TLSv1并且客户端实现使用" SessionTicket TLS"但是,在配置客户端以使用SSLv3时的扩展名 而不是TLSv1,会出现会话ID,因为SSLv3没有 这样的延伸。如果可能,请考虑使用SSLv3。