Die Verwendung von Anfragen mit TLS bietet keine SNI-Unterstützung
Ich bin mit Anfragen zu kommunizieren, mit einer django-app, aber
Wenn ich versuche
requests.get('https://mysite.com', verify=True)
Bekomme ich die Fehlermeldung:
hostname 'mysite.com' nicht entsprechend '*.myhost.com', 'myhost.com'
Allerdings, wenn ich mir den browser, oder http://www.digicert.com/help/ das Zertifikat sieht fein und dandy.
Mein Gastgeber schlug vor, es war das fehlen von SNI-support von Anfragen (und Github scheint zu bestätigen, dass https://github.com/kennethreitz/requests/issues/749 ). Hat jemand gefunden, einen work-around mit Anfragen?
InformationsquelleAutor der Frage Massagran | 2013-09-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die aktuelle version von Anfragen, die sollten in Ordnung sein mit SNI. Weiter unten auf der GitHub issue können Sie sehen, die Anforderungen:
Installieren Sie die Pakete und geben Sie ihm noch eine Chance.
BEARBEITEN: von Anfragen v2.12.1, ndg-httpsclient und pyasn1 sind nicht mehr erforderlich. Die vollständige Liste der benötigten Pakete ist nun:
InformationsquelleAutor der Antwort Lukasa
In Ordnung für mich, um die akzeptierte Antwort an die Arbeit, ich hatte mit der Installation ein paar andere Pakete in dieser Reihenfolge:
InformationsquelleAutor der Antwort Shane N
Installieren Anfragen-Modul wie dieses. Dies wird installieren Sie die Sicherheits-Paket extras.
pip install requests[security]
InformationsquelleAutor der Antwort Nandeesh
Oder Sie können einfach verwenden Sie Python 2.7.9:
"Die Gesamtheit von Python 3.4, das ssl-Modul wurde zurück portiert für Python 2.7.9. Siehe PEP 466 für Rechtfertigung".
https://www.python.org/downloads/release/python-279/
InformationsquelleAutor der Antwort stantonk
@Lukasa Antwort richtig ist, mit der Gegenwart (von github) Anfragen. Vergessen Sie nicht, OpenSSL auf Ihrem system zu abgesehen von den pip-Abhängigkeiten, die er erwähnt.
Wenn für die Bereitstellung Gründe, warum Sie lieber eine stabile Anfragen version wie die 1.2.3 im pip, kann man monkey patch, dass man die Arbeit mit SNI wie diese:
InformationsquelleAutor der Antwort AntonioMO
Kopie meiner Antwort aus Zugriff auf https-Websites mit der IP-Adresse
Auf dem MAC High Sierra und Python-3.6.4, ich habe versucht, die Lösung: Anfragen toolbelt:HostHeaderSSLAdapter 1. leider funktioniert es nicht für mich, dann habe ich versucht
forcediphttpsadapterhabe es funktioniert endlich.
Erklärt der Autor alles in der readme-Teil und hat, sofern eine Probe Skript und es einfach befolgt werden können.
1.Installieren Sie die Bibliothek, indem
pip install requests[security] forcediphttpsadapter
2.führen Sie das Beispiel-Skript:
Hinweis: Bei einigen Fällen müssen Sie möglicherweise zu entfernen, wird der prefix 'www' aus der url.
InformationsquelleAutor der Antwort 69444091