본문 바로가기
Python/Python FAQ

Python2.6에서 안전하지 않은 HTTPS 요청 경고를 억제합니다., Suppress InsecureRequestWarning: Unverified HTTPS request is being made in Python2.6

by 베타코드 2023. 10. 7.
반응형

질문


나는 pyVmomi를 사용하여 Python2.6에서 스크립트를 작성하고있다. 그리고 하나의 연결 방법을 사용하는 동안 다음과 같은 경고가 발생합니다:

service_instance = connect.SmartConnect(host=args.ip,
                                        user=args.user,
                                        pwd=args.password)

다음 경고가 발생합니다:

/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: 확인되지 않은 HTTPS 요청이 수행됩니다. 인증서 확인을 추가하는 것이 강력히 권장됩니다. 자세한 내용은 다음을 참조하십시오: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)

흥미로운 점은 pip로 urllib3를 설치하지 않았다는 것입니다 (하지만 /usr/lib/python2.6/site-packages/requests/packages/urllib3/에 있습니다).

다음을 시도해보았습니다 여기

import urllib3
...
urllib3.disable_warnings()

하지만 아무런 변화가 없었습니다.


답변


다음은 PYTHONWARNINGS 환경 변수를 통해 Python 경고를 비활성화할 수 있습니다. 이 경우 다음을 사용하면 됩니다:

export PYTHONWARNINGS="ignore:Unverified HTTPS request"

Python 코드를 사용하여 비활성화하려면 (requests >= 2.16.0):

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

requests < 2.16.0의 경우, 아래의 원래 답변을 참조하십시오.

원래 답변

urllib3.disable_warnings()를 수행해도 작동하지 않는 이유는 requests 내에 포함된 별도의 urllib3 인스턴스를 사용하고 있기 때문입니다.

다음 경로를 기반으로 이를 추론하였습니다: /usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py

requests의 urllib3에서 경고를 비활성화하려면 해당 모듈의 특정 인스턴스를 가져와야 합니다:

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
반응형

댓글