当前位置: 首页 > 知识库问答 >
问题:

curl:(35)错误:1408F10B:SSL例程:ssl3_get_record:版本号错误

薛云瀚
2023-03-14

当我尝试使用 curl(或 libcurl)连接到任何服务器(例如 google.com)时,我收到错误消息:

curl:(35)错误:1408F10B:SSL例程:ssl3_get_record:版本号错误

详细输出:

$ curl www.google.com --verbose  
* Rebuilt URL to: www.google.com/  
* Uses proxy env variable no_proxy == 'localhost,127.0.0.1,localaddress,.localdomain.com'  
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'  
*   Trying 131.159.0.2...  
* TCP_NODELAY set  
* Connected to proxy.in.tum.de (131.159.0.2) port 8080 (#0)  
* successfully set certificate verify locations:  
*   CAfile: /etc/ssl/certs/ca-certificates.crt  
  CApath: none  
* TLSv1.3 (OUT), TLS handshake, Client hello (1):  
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number  
* Closing connection 0  
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number'  

出于某种原因,curl似乎使用TLSv1.3,即使我使用命令--tlsv1.2强制它使用TLSv1.2(它仍然会打印TLSv1.3(OUT),…”我使用的是Curl和OpenSSL的最新版本:

$ curl -V  
curl 7.61.0-DEV (x86_64-pc-linux-gnu) libcurl/7.61.0-DEV OpenSSL/1.1.1 zlib/1.2.8  
Release-Date: [unreleased]  
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp  
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy  

我认为这是一个与我安装程序有关的问题。有人可以向我解释此错误消息的含义吗?

共有3个答案

仉峻
2023-03-14

这是一个提示错误,表明您正在从HTTPS端口提供HTTP。

您可以轻松地使用telnet进行测试

telnet FQDN 443
GET / HTTP/1.0
[hit return twice]

如果您在这里看到常规的HTTP文档[不是某种错误],您就知道您的配置不正确,并且响应服务器没有对响应进行SSL加密。

厍彭薄
2023-03-14

如果有人在使用Nginx时遇到这个错误,请尝试将以下内容添加到您的服务器配置中:

server {
    listen 443 ssl;
    ...
}

此问题源于Nginx为HTTP服务器提供服务,客户端希望在您侦听的任何端口上使用HTTPS。当您在listen指令中指定ssl时,您可以在服务器端清除此问题。

庞瀚
2023-03-14
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'   
                                         ^^^^^

< code>https://不对,应该是< code>http://。代理本身应该通过HTTP而不是HTTPS访问,即使目标URL是HTTPS。然而,代理将正确处理HTTPS连接并保持端到端加密。请参见HTTP CONNECT方法,了解如何实现这一点的详细信息。

 类似资料:
  • 我正在尝试将php与firebase结合使用 安装软件包“composer require kreait/firebase php^4.0”后 调整我的火力基地 它向我显示了错误: 致命错误:未捕获错误http\Exception\ConnectException:cURL错误35:OpenSSL SSL\u connect:SSL\u error\u连接到ff64t的系统调用。firebasei

  • 我已经在我的Ubuntu16.04上安装了JDK1.8,为了完成一些我必须安装JDK1.7的工作,我没有对旧版本做任何操作就安装了它,并且更改了$JAVA_HOME以指向新安装的位置。 echo运行良好,显示新安装的版本为1.7 但当我执行时,它显示的是较早安装的版本,即1.8。 如果我错在什么地方,请纠正我,我需要很好的解释这一点。 谢谢你。这是我的终端机

  • 问题内容: 当我包含必须从源代码编译的开源库时,出现此错误。现在,网络上的所有建议都表明该代码是在一个版本中编译并在另一版本(旧版本中是新版本)中执行。但是,我的系统上只有一个JRE版本。如果我运行命令: 并在Eclipse中检查Java库的属性,我得到 因此,我必须得出结论,类本身内部的其他东西引发了异常?那有可能吗? 问题答案: 我了解到这样的错误消息通常是正确的。当无法(按您的想法)想到所报

  • 当我试图用proguard混淆某个应用程序时,我总是会遇到这种错误 我已经更新了Proguard并检查了项目配置文件,但总是出现相同的错误。我正在使用Intellij IDEA的最新版本

  • 我试图传递一个XML文件作为Http POST请求。当我在一个Linux框上使用CURL测试它时,网络服务运行良好,XML格式良好。我试图编写一个Java实用程序来做同样的事情。我在Apache Commons HttpClient库3.1版本中找到了一个示例,下面是我的代码: 进口: 代码: 我得到一个错误: 更新 增加了Commons-logging-1.2。罐子 仍然会出现错误: 这句话的意

  • cURL错误35:连接中出现未知SSL协议错误(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)186/var/www/api/vendor/guzzlehttp://guzzle/src/Handler/CurlFactory.php