python request SSL 에러

파이썬에서 request를 할때 SSL 에러가 발생하는데요.

 

아래와 같이 certificate verify failed라는 메시지가 발생합니다.

Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

 

말 그대로 SSL 인증서가 오류가 있어서 인증이 되지 않는 케이스입니다.

 

 

이 경우 크게 2가지 방법으로 처리가 가능한데요.

 

ssl 인증서 예외처리

먼저 SSL에서 인증서를 예외처리하는 방식으로 처리할 수 있습니다.

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

 

위의 형태와 아래처럼 에러가 나타났을때 _create_unverified_context에 대해서만 if 문으로 처리하는 방법도 있습니다.

전체를 처리하는 방법보다는 에러가 나타났을때만 예외처리해서 문제를 최소화할수 있습니다.

if hasattr (ssl, '_create_unverified_context') :
    ssl._create_default_https_context = ssl._create_unverified_context

 

Request 예외처리

 

import requests
response = requests.get(url, verify=False)

다만 이경우 에러 메시지가 발생하는데요.

에러를 없애기 위해서는 아래와 같은 메시지를 추가해줘야 합니다.

 

from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

간단하게 하려면

import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

 

그러면 이 문제를 잘 해결하시기 바랍니다.