curl: (35) Fehler: 1408F10B: SSL-Routinen: ssl3_get_record: falsche Versionsnummer

125

Wenn ich versuche, mit curl (oder libcurl) eine Verbindung zu einem Server (z. B. google.com) herzustellen, wird folgende Fehlermeldung angezeigt:

curl: (35) Fehler: 1408F10B: SSL-Routinen: ssl3_get_record: falsche Versionsnummer

Ausführliche Ausgabe:

$ 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'  

Aus irgendeinem Grund scheint Curl TLSv1.3 zu verwenden, auch wenn ich es erzwinge, TLSv1.2 mit dem Befehl --tlsv1.2 zu verwenden (es wird weiterhin TLSv1.3 (OUT) gedruckt, ... "Ich verwende die neueste Version von Curl und 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  

Ich denke, dies ist ein Problem im Zusammenhang mit meiner Installation der Programme. Kann mir jemand erklären, was diese Fehlermeldung bedeutet?

Bernhard Jaeger
quelle

Antworten:

206
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'   
                                         ^^^^^

Das https://ist falsch, sollte es sein http://. Auf den Proxy selbst sollte über HTTP und nicht über HTTPS zugegriffen werden, obwohl die Ziel-URL HTTPS ist. Der Proxy wird die HTTPS-Verbindung dennoch ordnungsgemäß verarbeiten und die End-to-End-Verschlüsselung beibehalten. Weitere Informationen hierzu finden Sie unter HTTP CONNECT-Methode .

Steffen Ullrich
quelle
7
Wenn Sie diesen Fehler in Docker haben, wurde dieses Problem
behoben
7

Einfache Antwort

Wenn Sie sich hinter einem Proxyserver befinden, stellen Sie den Proxy auf Curl ein. Die Locke kann keine Verbindung zum Server herstellen, daher wird die falsche Versionsnummer angezeigt. Stellen Sie den Proxy ein, indem Sie subl ~ / .curlrc öffnen oder einen anderen Texteditor verwenden. Fügen Sie dann der Datei die folgende Zeile hinzu: proxy = proxyserver: proxyport Zum Beispiel proxy = 10.8.0.1:8080

Wenn Sie sich nicht hinter einem Proxy befinden, stellen Sie sicher, dass die curlrc-Datei nicht die Proxy-Einstellungen enthält.

Sachit Yadav
quelle
7

Wenn jemand diesen Fehler mit Nginx erhält, fügen Sie Ihrer Serverkonfiguration Folgendes hinzu:

server {
    listen 443 ssl;
    ...
}

Das Problem ist darauf zurückzuführen, dass Nginx einen HTTP-Server für einen Client bereitstellt, der HTTPS an dem von Ihnen abgehörten Port erwartet. Wenn Sie sslin der listenDirektive angeben , löschen Sie dies auf der Serverseite.

Arcsector
quelle
2
thx, das führte mich zu der Lösung, verpasste einfach das 'ssl' in der erwähnten Nginx-Konfigurationszeile
normal
0

Einfacher in einer Zeile:

proxy = 192.168.2.1: 8080; curl -v example.com

z.B. $ proxy = 192.168.2.1: 8080; curl -v example.com

xxxxxxxxx-ASUS: ~ $ proxy = 192.168.2.1: 8080; curl -v https: //google.com | head -c 15% Gesamt% Empfangen% Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Download Upload Gesamt ausgegebene linke Geschwindigkeit 0 0 0 0 0 0 0 0 -: -: - -: -: - -: -: - 0

  • Versuch 172.217.163.46:443 ...
  • TCP_NODELAY gesetzt
  • Verbunden mit google.com (172.217.163.46) Port 443 (# 0)
  • ALPN bietet h2 an
  • ALPN bietet http / 1.1 an
  • Festlegen der Speicherorte für die Zertifikatsüberprüfung:
  • CAfile: /etc/ssl/certs/ca-certificates.crt CApath: / etc / ssl / certs} [5 Byte Daten]
  • TLSv1.3 (OUT), TLS-Handshake, Client-Hallo (1):} [512 Byte Daten]
Biddut Mitra
quelle