如何解决“error:1408F10B:SSL routines:ssl3_get_record:wrong version number”错误?

17
我对HTTPs不熟悉。在我们的应用中,为了与另一个系统集成,我们获得了HTTPs URL和它们的证书。我们的团队将这些证书添加到测试存储中。现在,当我们在这些URL上发送请求时,我们会收到“不支持或无法识别的SSL消息”的错误。
如果我在该URL上运行curl -v,则会收到错误:1408F10B:SSL例程:ssl3_get_record:错误的版本号。 enter image description here 这是我们方面的问题还是需要由共享这些URL的其他系统进行修复?
这两个错误是由同一原因引起的吗?
3个回答

13

很可能服务器根本不支持TLS。

客户端将开始TLS握手,服务器将以非TLS响应进行回复。尽管如此,客户端期望服务器完成TLS握手的部分。 因此,它将试图将服务器的响应解释为TLS。这将导致根据客户端使用的TLS堆栈而异的奇怪错误消息。

对于基于OpenSSL的堆栈,通常会导致“错误的版本号”,因为它在尝试提取预期的TLS记录的TLS版本号时得到一些意外的结果,因为服务器实际上没有发送TLS记录。

这是我们的问题还是其他系统与我们共享这些URL的需要解决的问题。

如果这正是您应该使用的URL(即在您的网站上不仅仅是将“http://”更改为“https://”),则很可能是服务器端的问题。但也可能是网络路径中的某个中间盒子或软件的问题,例如某些防病毒软件、防火墙或拦截您的数据并拒绝访问远程系统并显示错误消息的强制性门户。


3
在我的情况下,我在apache2中有一个配置不良的虚拟主机。在另一个错误的虚拟主机上,有一个端口为443的http虚拟服务器!第二个虚拟主机是正确的,但Apache不能在同一端口上为不同的虚拟主机使用不同的协议。在删除了端口443上的http配置后,所有其他https主机都能正常工作,错误“error: 1408F10B:SSL routines:ssl3_get_record:wrong version number”消失了。

0

您的代理密码可能无效。 在我的情况下,我已经更改了代理用户密码,它正在工作。

git config --global http.proxy http://<username>:<password>@<proxyhost>:<port>
git config --global https.proxy http://<username>:<password>@<proxyhost>:<port>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接