wake-up-neo.com

wget ssl alert Handshake-Fehler

Ich versuche, Dateien von einer https-Site herunterzuladen und erhalte folgende Fehlermeldung:

OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Unable to establish SSL connection.

Wenn ich Blogs online lese, muss ich das Serverzertifikat und das Clientzertifikat angeben. Ich habe Schritte zum Herunterladen des Serverzertifikats gefunden, jedoch nicht das Clientzertifikat. Hat jemand einen vollständigen Satz von Schritten, um wget mit SSL zu verwenden? Ich habe auch die Option --no-check-certificate ausprobiert, aber das hat nicht funktioniert.

wget version: wget-1.13.4
openssl version: OpenSSL 1.0.1f 6 Jan 2014

versuchen Sie, alle Vortragsressourcen von der Website eines Kurses auf coursera.org herunterzuladen. Die URL würde also ungefähr so ​​aussehen: https://class.coursera.org/matrix-002/lecture

Für den Online-Zugriff auf diese Webseite ist eine Formularauthentifizierung erforderlich. Sie sind nicht sicher, ob dies den Fehler verursacht.

24
sotn

Es funktioniert von hier aus mit derselben OpenSSL-Version, jedoch mit einer neueren Version von wget (1.15). Wenn Sie das Änderungsprotokoll betrachten, gibt es folgende signifikante Änderung in Bezug auf Ihr Problem:

1.14: Unterstützung für die Angabe des TLS-Servernamens hinzufügen.

Beachten Sie, dass diese Site kein SNI erfordert. Aber www.coursera.org erfordert es . Und wenn Sie wget mit -v --debug aufrufen würden (wie ich es in meinem Kommentar ausdrücklich empfohlen habe!), Werden Sie Folgendes sehen:

$ wget https://class.coursera.org
...
HTTP request sent, awaiting response...
  HTTP/1.1 302 Found
...
Location: https://www.coursera.org/ [following]
...
Connecting to www.coursera.org (www.coursera.org)|54.230.46.78|:443... connected.
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Unable to establish SSL connection.

Der Fehler tritt also tatsächlich mit www.coursera.org auf und der Grund dafür ist die fehlende Unterstützung für SNI. Sie müssen Ihre Version von wget aktualisieren.

30
Steffen Ullrich

Ich war in SLES12 und für mich funktionierte es nach dem Upgrade auf wget 1.14 mit --secure-protocol = TLSv1.2 und mit --auth-no-challenge.

wget --no-check-certificate --secure-protocol=TLSv1.2 --user=satul --password=xxx --auth-no-challenge -v --debug https://jenkins-server/artifact/build.x86_64.tgz
2
Atul Soman

Grundsätzlich verwendet OpenSSL SSLv3, und die Site, auf die Sie zugreifen, unterstützt dieses Protokoll nicht.

Aktualisieren Sie einfach Ihr Wget:

Sudo apt-get install wget

Wenn es bereits ein anderes sicheres Protokoll unterstützt, fügen Sie es einfach als Argument hinzu:

wget https://example.com --secure-protocol=PROTOCOL_v1

1
Rad Apdal

Ich hatte dieses Problem auf Ubuntu 12.04.3 LTS (weit über EOL hinaus, ich weiß es ...) und bin damit umgekommen:

Sudo apt-get update && Sudo apt-get install ca-certificates
1
jaybrau

Eine Alternative ist das Ersetzen von "https" durch "http" in der URL, die Sie herunterladen möchten, um nur die SSL-Verbindung zu umgehen. Nicht die sicherste Lösung, aber das hat in meinem Fall funktioniert.

1
JohnnyDenim

Sie haben wahrscheinlich eine alte Version von Wget. Ich empfehle die Installation von wget mit Chocolatey , dem Paketmanager für Windows. Dies sollte Ihnen eine aktuellere Version (wenn nicht die aktuellste) geben.

Führen Sie diesen Befehl nach der Installation von Chocolatey (als Administrator) aus:

choco install wget
0
Pheelbert