openssl errno 104是否表示已禁用SSLv2?


13

我想检查我的服务器是否禁用了SSLv2。我通过尝试使用以下shell命令与openssl远程连接来实现此目的。

openssl s_client -connect HOSTNAME:443 -ssl2

我在互联网上可以找到的大多数文献都说,如果看到类似以下错误的内容,则说明SSLv2已正确禁用。

29638:error:1407F0E5:SSL routines:SSL2_WRITE:ssl handshake failure:s2_pkt.c:428:

在Apache Apache中禁用SSLv2的情况下连接到我的Ubuntu服务器时,我确实收到上述错误,但是在注册表中禁用SSLv2的情况下连接到Windows Server 2008 R2服务器时,我得到了以下输出和错误。

CONNECTED(00000003)
write:errno=104

我找不到任何解释此输出和错误的文献。如果有人可以向我解释是否以及为什么此输出和错误表示已正确禁用SSLv2,我将不胜感激。

谢谢!

Answers:


14

至少在Linux上,104 ECONNRESET用于“对等方重置连接” –换句话说,该连接被TCP RST数据包强制关闭,该TCP RST数据包由服务器发出或由中间人欺骗。

我会在Ubuntu服务器上尝试Wireshark / tshark,以查看实际发送的内容。如果RST是真实的,则可能是httpd进程已死–检查日志文件,dmesg以防万一。


Qualys公司SSL服务器测试网站可以显示由Web服务器支持的所有SSL / TLS版本。(不幸的是,它甚至不打扰TLS SNI ...)


因此,我想知道当服务器禁用SSLv2时客户端尝试与SSLv2连接时,是否从Windows Server 2008 R2发送了TCP RST数据包
David

您的防火墙通常是发送RST数据包的中介。但是,如果这不是问题,有时强制使用-ssl3选项或使用-servername选项的SSL3 可以克服此问题。
阿米特·奈杜

-3

服务器支持的密码与收件人服务器支持的密码之间可能不匹配。


3
如何确认这一点?确认后如何解决?我本人知道这些问题的答案,但其他人可能不知道,因此他们存在这个问题的原因。
Ramhound 2015年

-3

我有同样的错误,它与接口MTU有关。将客户端接口MTU设置为1492(为1500),为我解决了此错误。


2
这可能已经解决了您的问题,但是您的问题与SSL密码兼容性和/或配置无关。尽管此答案可能已经解决了您的问题,但由于它与该问题无关,因此不适用于作者的问题。
Ramhound
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.