[python] InsecureRequestWarning 억제 : 파이썬 2.6에서 확인되지 않은 HTTPS 요청이 이루어지고 있음

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: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: 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"

파이썬 코드 ( requests >= 2.16.0) 사용을 비활성화하려면 :

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

에 대해서는 requests < 2.16.0아래의 원래 답변을 참조하십시오.

원래 답변

요청이 urllib3.disable_warnings()작동하지 않는 이유 는 요청 내에서 공급 된 별도의 urllib3 인스턴스를 사용하는 것처럼 보이기 때문입니다.

나는 여기 경로에 따라 이것을 수집합니다. /usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py

요청 공급 업체 인 urllib3에서 경고를 비활성화하려면 해당 모듈의 특정 인스턴스를 가져와야합니다.

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

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


답변

이는 2017 년의 해답 urllib3의 일부가 아닌 requests이상

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


답변

이 github에의 코멘트, 하나는 비활성화 할 수 있습니다 urllib3통해 요청 경고를 requests1 라이너 :

requests.packages.urllib3.disable_warnings()

그래야만 모든 경고 가 표시 되지 않습니다 InsecureRequest(예 : 등도 표시 되지 않음 InsecurePlatform). 작업이 필요한 경우 간결함이 편리하다는 것을 알았습니다.


답변

올바른 방법은 제공된 링크에서 관련 섹션 을 읽고 표시된 대로 수행하는 것입니다. 의 방법은 특정 requests(의 복사본과 함께 번들 urllib3에 따라,) CA 인증서 – 고급 사용법 – 2.8.1 문서를 요청합니다 :

  • requests 자체 인증서 번들과 함께 제공되지만 모듈과 함께 만 업데이트 할 수 있습니다.
  • 그것은 (이후 사용 requests v2.4.0) 패키지 가 설치되어 대신하는 경우를certifi

HTTPS 인증서 확인 보안 조치는 마음에 들지 않습니다. 중간자 (Man-in-the-middle) 공격 은 바이러스를 감염 시키 거나 데이터를 조작하거나 도용 하는 등의 제 3 자로부터 보호 해줍니다.

네트워크 액세스 를 대상으로 하는 Tailored Access OperationsGreat Firewall of China 와 같이 오늘날 정부가 지원하는 글로벌 해킹 작업 은 생각보다 가능성이 높습니다.


답변

성급하지 않은 경우, 파이썬의 미확인 HTTPS 경고를 비활성화하는 빠른 방법 :

export PYTHONWARNINGS="ignore:Unverified HTTPS request"


답변

일부 패키지 공급 업체가 자체 urllib3 사본 인 경우 허용되는 답변이 작동하지 않습니다.이 경우 여전히 작동합니다.

import warnings

warnings.filterwarnings('ignore', message='Unverified HTTPS request')


답변

PyVmomi Client와 비슷한 문제가있었습니다. Python 버전 2.7.9에서는 다음 코드 줄을 사용하여이 문제를 해결했습니다.

default_sslContext = ssl._create_unverified_context()
self.client = \
                Client(<vcenterip>, username=<username>, password=<passwd>,
                       sslContext=default_sslContext )

이것이 작동하려면 Python 2.7.9 이상이 필요합니다.