Python의 requests 모듈을 사용하는 중 SSL 인증서 오류가 발생하여 해결법을 기록합니다.
오류 현상과 예상 원인
SSL : WRONG_SIGNATURE_TYPE 에러로 인해 Max retries까지 연결을 시도한 후 실행이 종료되었습니다.
HTTPSConnectionPool(host='???', port=443): Max retries exceeded with url: /? (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:997)')))
해결방법
예전 버전 TLS에 대한 Adapter를 만들어 session과 함께 사용하였습니다.
import ssl
import requests
# SSL Error 해결을 위한 TLSAdapter
class TLSAdapter(requests.adapters.HTTPAdapter):
def init_poolmanager(self, connections, maxsize, block=False):
"""Create and initialize the urllib3 PoolManager."""
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT@SECLEVEL=1')
self.poolmanager = poolmanager.PoolManager(
num_pools=connections,
maxsize=maxsize,
block=block,
ssl_version=ssl.PROTOCOL_TLS,
ssl_context=ctx)
_session = requests.session()
_session.mount('https://', TLSAdapter())
_response = _session.post(self.url, headers.self.header)
참고 : 링크
'프로그래밍 > Pyton.' 카테고리의 다른 글
[Python] Uvicorn 일자별 로그 쌓기(with. FastAPI) (0) | 2022.07.26 |
---|---|
[Python] Java와 다른 예외처리(try-except) (0) | 2022.06.21 |
[Python] Switch Case가 없어요 (0) | 2022.06.13 |
[PyCharm] Method 'method' may be 'static' 해결 (0) | 2022.06.09 |
[Pyton] 프로젝트 패키지 한번에 설치 하기 (0) | 2022.06.08 |
댓글