반응형

출처 : https://stackoverflow.com/questions/27981545/suppress-insecurerequestwarning-unverified-https-request-is-being-made-in-pytho


python 으로 https 요청을 하는데... https 라서 ssl 인증서를 검증받는다..

그래서 

requests.post(url, data, verify=False)

라고 옵션을 넣어서 검증을 하지 않도록 한다.


그랬더니 실행이 될때마다 system warning 메세지가 자꾸 뜬다..

Unverified HTTPS Request......


request is being made to host '192.168.1.100'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

  InsecureRequestWarning,


error

InsecureRequestWarning 이라고 시스템 에러가 자꾸 발생한다.

처음엔 그냥 냅뒀는데.. 시간이 지나고 보니 뭔가 계속 뜨는게 신경쓰였다..;;;;

그!래!서!

이걸 안뜨게 싶어서 검색을 좀 해봤더니.. 방법을 겟!! 


#impport urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


에러가 나는 urllib3 에서 insecureRequestWarning 메세지를 예외처리(except)하는 방법이 있었음..!!

반응형
반응형

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