Deaktivieren Sie die Zertifikatsüberprüfung in Python-Anfragen
Wenn beim Senden von HTTPS-Anfragen mit Anfragen ein Fehler wegen eines abgelaufenen Zertifikats auftritt, besteht eine gängige Lösung darin, die zu deaktivieren Überprüfung des Sicherheitszertifikats.
Lösung 1: Verwenden von „Verify=False“
Wie in der Dokumentation erwähnt, können Sie „Verify=False“ übergeben, um die Zertifikatsüberprüfung zu deaktivieren.
<code class="python">import requests requests.post(url='https://foo.example', data={'bar':'baz'}, verify=False)</code>
Lösung 2: Patching-Anfragen simulieren (Kontextmanager)
Für eine erweiterte Verwendung können Sie einen Kontextmanager verwenden, um Patch-Anfragen zu simulieren und die Zertifikatsüberprüfung für alle darin enthaltenen Anfragen zu deaktivieren den Kontext.
<code class="python">import warnings import contextlib import requests from urllib3.exceptions import InsecureRequestWarning old_merge_environment_settings = requests.Session.merge_environment_settings @contextlib.contextmanager def no_ssl_verification(): opened_adapters = set() def merge_environment_settings(self, url, proxies, stream, verify, cert): opened_adapters.add(self.get_adapter(url)) settings = old_merge_environment_settings(self, url, proxies, stream, verify, cert) settings['verify'] = False return settings requests.Session.merge_environment_settings = merge_environment_settings try: with warnings.catch_warnings(): warnings.simplefilter('ignore', InsecureRequestWarning) yield finally: requests.Session.merge_environment_settings = old_merge_environment_settings for adapter in opened_adapters: try: adapter.close() except: pass</code>
Verwendung:
<code class="python">with no_ssl_verification(): requests.get('https://wrong.host.badssl.example/')</code>
Beachten Sie, dass dieser Kontextmanager alle offenen Adapter schließt, nachdem er verlassen wurde, um unerwartetes Verhalten aufgrund zwischengespeicherter Verbindungen zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie deaktiviere ich die Zertifikatsüberprüfung in Python-Anfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!