Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melumpuhkan Pengesahan Sijil dalam Permintaan Python?
Lumpuhkan Pengesahan Sijil dalam Permintaan Python
Apabila menghadapi ralat sijil tamat tempoh semasa membuat permintaan HTTPS dengan permintaan, penyelesaian biasa adalah untuk melumpuhkan semakan sijil keselamatan.
Penyelesaian 1: Menggunakan verify=False
Seperti yang dinyatakan dalam dokumentasi, anda boleh lulus verify=False untuk melumpuhkan pengesahan sijil.
<code class="python">import requests requests.post(url='https://foo.example', data={'bar':'baz'}, verify=False)</code>
Penyelesaian 2: Permintaan Tampalan Monyet (Pengurus Konteks)
Untuk penggunaan yang lebih lanjut, anda boleh menggunakan pengurus konteks untuk meminta tampalan monyet dan melumpuhkan pengesahan sijil untuk semua permintaan dalam konteksnya.
<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>
Penggunaan:
<code class="python">with no_ssl_verification(): requests.get('https://wrong.host.badssl.example/')</code>
Perhatikan bahawa pengurus konteks ini menutup semua penyesuai terbuka selepas meninggalkannya untuk mengelakkan tingkah laku yang tidak dijangka disebabkan oleh sambungan cache.
Atas ialah kandungan terperinci Bagaimana untuk melumpuhkan Pengesahan Sijil dalam Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!