Python 요청에서 인증서 확인 비활성화
요청으로 HTTPS 요청을 하는 동안 만료된 인증서 오류가 발생하는 경우 일반적인 해결 방법은 보안 인증서 확인.
해결책 1: verify=False 사용
설명서에 언급된 대로 verify=False를 전달하여 인증서 확인을 비활성화할 수 있습니다.
<code class="python">import requests requests.post(url='https://foo.example', data={'bar':'baz'}, verify=False)</code>
해결책 2: Monkey 패치 요청(컨텍스트 관리자)
더 고급 사용을 위해 컨텍스트 관리자를 사용하여 Monkey 패치 요청을 수행하고 모든 요청에 대한 인증서 확인을 비활성화할 수 있습니다.
<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>
사용법:
<code class="python">with no_ssl_verification(): requests.get('https://wrong.host.badssl.example/')</code>
이 컨텍스트 관리자는 캐시된 연결로 인한 예기치 않은 동작을 방지하기 위해 열려 있는 모든 어댑터를 종료한 후 닫습니다.
위 내용은 Python 요청에서 인증서 확인을 비활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!