Ich kann wget nicht dazu bringen, die Client-Zertifikate zu verwenden. In der Dokumentation wird die Verwendung des Flags --certificate beschrieben.
Die Verwendung des Zertifikat-Flags ist klar. Ich habe festgelegt, dass die PEM-Version des Client-Zertifikats verwendet wird.
Aber wenn ich mich verbinde, erhalte ich den folgenden Fehler:
HTTP request sent, awaiting response... Read error (error:14094410:SSL routines:
SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_
READ_BYTES:ssl handshake failure) in headers.
Giving up.
Ein SSL-Handshake-Fehler bedeutet, dass der Client kein korrektes Client-Zertifikat angegeben hat. Das von mir verwendete Client-Zertifikat funktioniert immer noch in einem Browser.
Hinweis: Wenn ich die Clientauthentifizierung auf dem Server deaktiviere, kann wget eine Verbindung herstellen. Hinweis: Die Verwendung von Curl wird empfohlen, aber ich möchte den Wechsel vermeiden.
ssl-certificate
wget
Bart De Vos
quelle
quelle
Antworten:
Ich habe eine Woche darüber studiert, schließlich mit der Hilfe, die ich von dieser Seite bekommen habe.
Der Befehl, den ich zum Verbinden verwendet habe, lautet:
quelle
Sind Sie sicher, dass die SSL-Clientzertifikatauthentifizierung für Ihren Server funktioniert?
Ich habe gerade getestet, ob ich mein Zertifikat (im PKCS12-Format) in eine Zertifikats- und Schlüsseldatei im PEM-Format konvertieren und mit wget verwenden kann.
Ich kann drei Fehlerzustände provozieren, von denen keiner mit dem übereinstimmt, was Sie melden:
Ich benutze Nginx; Sie erwähnen nicht, was Sie verwenden, daher bin ich mir nicht sicher, ob Apache dieselben Antworten zurückgeben würde.
Ich würde vorschlagen, Ihr Zertifikat und Ihren Schlüssel zu nehmen, es in PKCS12 zu kombinieren (oder es einfach als PEM zu importieren, wenn Ihr Browser das Format unterstützt) und sicherzustellen, dass zuerst alles an dieser Front funktioniert.
Wenn Sie dies bereits getan haben, können Sie möglicherweise von einem anderen Computer aus versuchen, sicherzustellen, dass die von Ihnen verwendete OpenSSL-Version nicht seltsam ist.
Versuchen Sie zuletzt, OpenSSL im s_client-Modus zu verwenden:
Und sehen Sie, ob die Dinge auf dieser Ebene funktionieren. Wenn ja, dann ist etwas mit wget wackelig und Sie möchten es möglicherweise neu erstellen oder neu installieren. Wenn nicht, kann Ihnen die Ebene der Debug-Ausgabe dabei helfen, das Problem besser zu lokalisieren als die Debug-Ausgabe von wget.
quelle
Ich habe wget erfolgreich wie folgt verwendet:
Beachten Sie die
--private-key option
. keep.url hat https: //bla.bla.blaJetzt werden Sie jedoch aufgefordert, die PEM-Passphrase einzugeben:
Wenn ich das Passwort eingebe, funktioniert es in Ordnung, aber kennt jemand einen Weg, um die Eingabeaufforderung zu umgehen?
quelle
Ist es möglich, dass wget eine Verbindung zu Port 80 herstellt? Dieser Fehler ist sehr ähnlich zu Fehlern, die ich beim Testen erhalte, wenn HTTP versehentlich 80 und 443-wget abhört und versucht, SSL zu sprechen, und nicht die gewünschte Antwort erhält.
quelle
Holen Sie sich eine Netzwerkerfassung und laden Sie sie in Wireshark. Dies sollte Ihnen ein klareres Bild davon geben, was auf SSL / TLS-Ebene fehlschlägt.
quelle
In Versionen wie 0.9.8 gab es Probleme mit SSLv3.
Versuchen Sie, -no_ticket an openssl s_client zu übergeben oder wenn -ssl2 funktioniert
quelle