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

当我尝试使用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  

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

Bernhard Jaeger asked 2020-07-24T19:07:50Z
1个解决方案
80 votes
https://

https://是错误的,应该是http://。即使目标URL是HTTPS,代理本身也应该通过HTTP(而不是HTTPS)访问。 尽管如此,代理仍将正确处理HTTPS连接并保持端到端加密。 有关详细信息,请参见HTTP CONNECT方法。

Steffen Ullrich answered 2020-07-24T19:08:24Z
translate from https://stackoverflow.com:/questions/50840101/curl-35-error1408f10bssl-routinesssl3-get-recordwrong-version-number