본문 바로가기
프로그래밍/Pyton.

[Python] requests 사용시 SSL 서명 오류

by _Chavi 2022. 6. 28.

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)

 

 

참고 : 링크

댓글