SSL23_GET_SERVER_HELLO:运行perl脚本时的未知协议

时间:2018-06-08 13:16:01

标签: perl ssl lwp

@Steffen:我会查看脚本部分。 我刚刚注意到现在服务的wget命令url无法建立SSL连接

[root@XXXX rpms]# wget https://testuser:testpwd.service-now.com/u_incident_interface.do --2018-06-10 13:00:07-- https://srv_SOAPimporterNagios:password@rwe.service-now.com/u_incident_interface.do Resolving rwestproxy-neurathdc.rwe.com... 10.88.253.20 Connecting to rwestproxy-neurathdc.rwe.com|10.88.253.20|:8080... connected. Unable to establish SSL connection. [root@XXXX rpms]#

您能否就SSL连接问题提出建议?

1 个答案:

答案 0 :(得分:3)

TL; DR:服务器正在使用普通流量而不是预期的TLS进行响应。造成这种情况的原因可能是对客户端的错误预期,错误配置或旧的错误软件。

  

SSL连接尝试失败错误:140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知协议

如果其他设备根本没有正确地与SSL通话,则通常会发生unknown protocolSSL_ERROR_RX_RECORD_TOO_LONGwrong version number等错误。这意味着客户端正在启动与ClientHello的TLS握手,并且服务器正在响应一些与SSL / TLS完全不相似的内容。仍然客户端会尝试将非TLS答案解释为TLS,因此会抱怨某些奇怪的TLS版本或一些损坏的TLS记录。

如果您正在尝试使用HTTPS 与普通HTTP服务器通信,则会发生这种情况。这可能是因为服务器从未首先为HTTPS配置,而且错误地认为将URL从http://更改为https://会神奇地使服务器HTTPS准备就绪。可能还有一个是访问服务器上的错误端口,即普通HTTP端口而不是HTTPS端口。还有一些情况,由于服务器配置错误只说纯HTTP,而配置看起来应该说HTTPS - 就像在this question中一样。或者可能是因为代理配置错误,即假设HTTPS将访问代理,即使对于in this question这样的HTTPS URL,它也可以通过普通HTTP访问。

如果服务器在切换到TLS之前需要一些初始纯数据,也会发生这种情况。例如,当使用代理连接到最终目标时。在HTTP代理的情况下,客户端需要首先发送普通HTTP CONNECT请求,从服务器读取纯HTTP响应并检查是否成功,然后才能从TLS握手开始。例如,如果您使用的是旧版本的LWP ,则可能会发生这种情况,因为在6.00和6.06之间,HTTPS的代理支持已被破坏。