Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die SSL-Zertifikatsüberprüfung in Python-Anfragen deaktivieren?
Sicherheitszertifikatsüberprüfung in Python-Anfragen deaktivieren
Bei HTTPS-Anfragen überprüft die Anforderungsbibliothek von Python das SSL-Zertifikat des Servers, um sicherzustellen, dass die Verbindung sicher ist . In einigen Fällen, beispielsweise beim Zugriff auf Websites mit abgelaufenen Zertifikaten, möchten Sie diese Überprüfung jedoch möglicherweise deaktivieren.
Um die Zertifikatsüberprüfung zu deaktivieren, verwenden Sie das Argument „Verify“ in der Funktion „requests.post“. Setzen Sie es wie folgt auf „Falsch“:
<code class="python">import requests requests.post(url='https://foo.example', data={'bar':'baz'}, verify=False)</code>
Dadurch kann die Anfrage ohne Überprüfung des SSL-Zertifikats gestellt werden. Es ist jedoch wichtig zu beachten, dass dies ein Sicherheitsrisiko darstellen kann, da es die Möglichkeit von Man-in-the-Middle-Angriffen eröffnet. Verwenden Sie diese Option mit Vorsicht.
Verwenden eines Kontextmanagers für die SSL-Überprüfung
Wenn Sie die SSL-Überprüfung für mehrere Anfragen in einem bestimmten Kontext deaktivieren müssen, können Sie einen verwenden Kontextmanager wie folgt:
<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): # ... 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 with no_ssl_verification(): # Make requests without SSL verification here</code>
Dieser Kontextmanager setzt die Überprüfung vorübergehend für alle innerhalb des Blocks gestellten Anforderungen auf „False“ und kehrt dann zum Standardverhalten zurück, wenn der Block beendet wird. Es unterdrückt auch die SSL-Warnung, die sonst ausgelöst würde.
Das obige ist der detaillierte Inhalt vonWie kann ich die SSL-Zertifikatsüberprüfung in Python-Anfragen deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!