Подавить InsecureRequestWarning: непроверенный HTTPS-запрос выполняется в Python2. 6
Я пишу скрипты в Python2. 6 с использованием pyVmomi и при использовании одного из методов подключения:
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)
интересно то, что у меня нет urllib3, установленного с pip (но он есть в /usr / lib / python2. 6/site-packages/requests/packages/urllib3/).
Я пробовал, как предложил здесь
import urllib3
...
urllib3.disable_warnings()
но это не меняло что угодно.
9 ответов:
обновление (2017-07-28): если вы используете современную версию этих библиотек, они уже не могут быть проданы. Если это так, то вам нужно будет только сделать:
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)если вы все еще используете версию запросов, которые поставщики urllib3 внутри него (например, исходный вопрос), то вы можете использовать исходный ответ ниже:
оригинальный ответ:
причина делать
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)
правильный способ-читать соответствующий раздел по ссылке и делай, как он говорит. Путь специфический для
requests(который связывает со своей собственной копиейurllib3), согласно сертификаты CA-расширенное использование-запросы 2.8.1 документация:
requestsпоставляется с собственным пакетом сертификатов (но он может быть обновлен только вместе с модулем)- он будет использовать (после
requestsv2.4.0)thecertifiпакет вместо этого, если она установленамера безопасности проверки сертификата HTTPS-это не то, что нужно отбросить беззаботно. Атака "человек в середине", которую она предотвращает, защищает вас от третьей стороны, например потягивая вирус в или подделка или воровство ваш данных.
который, с сегодняшними поддерживаемыми правительством глобальными хакерскими операциями, такими как Индивидуальные Операции Доступа и Великий Брандмауэр Китая что целевая сетевая инфраструктура, более вероятно, чем вы думаете.
на это github комментарий, можно отключить
urllib3предупреждения запросу черезrequestsв 1-liner:
requests.packages.urllib3.disable_warnings()это будет подавлять все предупреждения, хотя, не только
InsecureRequest(т. е. он также будет подавлятьInsecurePlatformetc). В тех случаях, когда мы просто хотим, чтобы вещи работали, я нахожу краткость удобной.
для нетерпеливых, быстрый способ отключить python непроверенный HTTPS предупреждение:
export PYTHONWARNINGS="ignore:Unverified HTTPS request"
У меня была аналогичная проблема с клиентом PyVmomi. С 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 по крайней мере.
почему бы не использовать pyvmomi исходная функция
SmartConnectNoSSL. Они добавил эта функция наJune 14, 2016и назвал егоConnectNoSSL,через день после они изменили имя кSmartConnectNoSSL, используйте это вместо того, чтобы передавать предупреждение с ненужными строками кода в вашем проекте?предоставляет стандартный способ подключения к указанному серверу без SSL проверка. Полезно при подключении к серверам с самозаверяющими сертификатами или когда вы хотите полностью игнорировать SSL
service_instance = connect.SmartConnectNoSSL(host=args.ip, user=args.user, pwd=args.password)