반응형

python 으로 https 사이트 응답값을 받아올때 못받아 오는 경우들이 있습니다.

보면 대부분 ssl 인증서 문제죠


OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 672, in urlopen

    chunked=chunked,

  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 376, in _make_request

    self._validate_conn(conn)

  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 994, in _validate_conn

    conn.connect()

  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 360, in connect

    ssl_context=context,

  File "/usr/local/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 383, in ssl_wrap_socket

    return context.wrap_socket(sock)

  File "/usr/local/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py", line 491, in wrap_socket

    raise ssl.SSLError("bad handshake: %r" % e)

ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)


내부 시스템 REST API를 호출하기 위해서 호출을 하면.. 100%죠.. 

보통 내부 시스템들은 local 인증서를 쓰기 때문입니다.


앞에서 curl 로 -k 옵션으로 인증서를 무시하는 게 있었던거.. 기억나시나요?


python 에서 requests 모듈에도 그런 옵션이 있습니다.

reqeust ssl cert verificationpython 에서 requests 모듈을 사용 시 ssl 인증을 무시하는 방법

requests 모듈 사이트에서 가져온 화면 입니다.


보면 reqeusts.get(url, verify=False) 로 해결할 수 있는 것을 확인할 수 있습니다.


끝.

반응형

+ Recent posts