Der wahrscheinlichste Fehler ist dass requests
und der Server nicht in der Lage sind, eine Chiffre auszuhandeln, um zu verwenden.
Überprüfen Sie, welche Locke verwendet;
curl --verbose https://internal.site.no/
Es wird Ihnen eine Menge ausgegeben, aber die, die Sie suchen, ist so etwas wie SSL connection using TLSv1.2/ECDHE-RSA-AES128-GCM-SHA256
.
Blick auf den Unterschied von 2.11.1 to 2.12.0 Anfragen, zeigt eine neue Version von Urllib3 (zu Version 1.19). Vielleicht ist es die removal of 3des, die Sie hier beißt?
Wenn Sie Ihre curl --verbose ...
Ausgabe Chiffre gegen this nützliche Liste der Chiffre Namen Zuordnung überprüfen. Sie können versuchen, den openssl
Name des Namens auf das Hinzufügen was requests
akzeptieren, Beispiel (Sie dies am Anfang Ihrer App/script tun können):
import requests
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ':ADH-AES128-SHA256'
wenn curl Sie zeigt, dass es mit TLS_DH_anon_WITH_AES_128_CBC_SHA256
ist (als Beispiel).
Ein weiterer praktischer Tipp ist das nmap Skript ssl-enum-ciphers, wie diese verwenden:
nmap --script ssl-enum-ciphers -p 443 internal.site.no
eine Liste zu bekommen, was sie findet als unterstützte Chiffren (beachten Sie, Skript laut sein könnte) ...
Dann ist es wahrscheinlich die Entfernung von 3des von urllib3, die Sie auch beißen würde. Der Link in meiner Antwort für diff. Ich denke, es ist eine bessere Lösung, die 'DEFAULT_CIPHERS' in urllib3 zu monkeyern als auf einer alten Version zu bleiben. Das Problem liegt im https-Server, mit dem wir reden.Es ist ein Grund, warum 3des out ist .. :) – xeor
Dies sollte die Antwort sein. – Bhargav