SSL-Fehler mit Python-requests trotz up-to-date-Abhängigkeiten
Bin ich immer ein SSL - "bad handshake" - Fehler. Die meisten ähnliche Antworten zu diesem problem scheinen stammen aus alten Bibliotheken, 1024bit-cert. Inkompatibilität, etc... ich denke ich bin up to date, und kann nicht herausfinden, warum ich diese Fehlermeldung bekommen.
SETUP:
- Anfragen 2.13.0
- Zertifi 2017.01.23
- 'OpenSSL 1.0.2 g 1 Mar 2016'
Ich bin schlagen diese API (2048bit Zertifikat, Schlüssel): https://api.sidecar.io/rest/v1/provision/application/device/count/
Und immer diese Fehlermeldung:
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)
Siehe l.44 https://github.com/sidecar-io/sidecar-python-sdk/blob/master/sidecar.py
Wenn ich wieder verify=False
bei Anfragen, kann ich umgehen, aber ich würde lieber herausfinden, warum die Zertifizierung wird versagt.
Jede Hilfe wird sehr geschätzt; vielen Dank!
InformationsquelleAutor N. Masson | 2017-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schlägt die Validierung fehl, da der server Sie Zugriff fehlerhaft ist, D. H. es ist nicht ein Fehler des setup-oder code. Blick auf die Bericht von SSLLabs sehen Sie
Dies bedeutet, dass der server sendet ein Zertifikat Kette, die fehlt, eine intermediate-Zertifikat der vertrauenswürdigen Stammzertifizierungsstelle, und somit auch den client kann nicht bauen die trust chain. Die meisten desktop-Browsern umgehen dieses problem, indem Sie versuchen, um die fehlenden Zertifikat von irgendwo sonst, aber normal TLS-Bibliotheken nicht in diesem Fall. Müssen Sie explizit hinzufügen, die fehlende Kette Zertifikat als vertrauenswürdig um dieses problem zu umgehen:
mycerts.pem
enthalten sollte, die fehlenden intermediate-Zertifikat und der vertrauenswürdigen root-Zertifikat. Eine getestete version fürmycerts.pem
finden Sie in http://pastebin.com/aZSKfyb7.Sie könnten markieren Sie diese Antwort als akzeptiert.
InformationsquelleAutor Steffen Ullrich
Diese helfen kann, als Abhilfe für Ihr Problem.
Da verify=False macht die SSL-überprüfung überspringen.
Die ursprüngliche Frage bereits erwähnt
verify=False
als bypass, fordert aber für eine richtige Lösung.InformationsquelleAutor Shadkhan