许多SSL客户端,特别是JDK 6,使用SSLv2Hello协议与服务器进行握手。使用此协议并不意味着您正在使用SSL2.0或3.0;它仅仅是确定要使用哪个协议的握手。https://www.rfc-editor.org/rfc/rfc5246#appendix-E.2
但是,在Apache中,如果禁用SSLv3支持,显然会取消对SSLv2Hello协议的支持。Apache对SSLv2Hello有明确的支持;也就是说,您可以启用它,但不能启用SSLv3。
在Apache中有办法做到这一点吗?
更新
这是我的协议配置:
SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3发布于 2014-10-20 14:45:07
显然,mod_ssl在过去一年左右发生了变化(我还没有找到确切的提交源,但发现了“问题”)。消息来源现在这样做:
If SSLProtocol only includes only one Protocol:
Handshake = That Protocol's Handshake Only
Else
Handshake = SSLv2 Handshake此设置没有覆盖。你唯一能做的就是编辑源代码,重新编译你自己的版本。我创建了一个比较来强制SSLv2握手兼容性,如果您想编译自己的话。
发布于 2014-10-22 13:25:37
原来这一直是个不存在的问题。Apache将接受与我在上面发布的任何一种配置的SSLv2握手。我被握手错误误导,认为这就是问题所在;这实际上只是一个配置问题,服务器不信任客户端的CA。
https://serverfault.com/questions/637880
复制相似问题