Я пишу скрипты на 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()
но это ничего не изменило.
Ответы:
Вы можете отключить любые предупреждения Python через
PYTHONWARNINGS
переменную окружения. В этом случае вы хотите:Чтобы отключить использование кода Python (
requests >= 2.16.0
):Для
requests < 2.16.0
см оригинальный ответ ниже.Оригинальный ответ
Причина, по которой
urllib3.disable_warnings()
это не сработало, заключается в том, что, похоже, вы используете отдельный экземпляр urllib3, продаваемый внутри запросов.Я собираю это на основе пути здесь:
/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py
Чтобы отключить предупреждения в встроенном urllib3 запросов, вам необходимо импортировать этот конкретный экземпляр модуля:
источник
PYTHONWARNINGS="ignore:Unverified HTTPS request"
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
.Это ответ в 2017 году.
urllib3
Не является частьюrequests
большеисточник
requests >= 2.16.0
requests
версия2.21.0
и естьurllib3
. Я попробовал2.16.0
, `2.16.1,, and
2.17.0`, и у них всех былоurllib3
. Я пытался,2.4.0
и у этого не было, хотя. Они добавили это обратно?Согласно этому комментарию github , можно отключить
urllib3
предупреждения запросов черезrequests
1-строчный:requests.packages.urllib3.disable_warnings()
Это будет подавлять все предупреждения, а не только
InsecureRequest
(то есть, это также будет подавлять иInsecurePlatform
т. Д.). В тех случаях, когда мы просто хотим, чтобы все работало, я нахожу лаконичность удобной.источник
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
похоже на работу.Правильный способ - прочитать соответствующий раздел по предоставленной ссылке и сделать, как говорится. Способ, специфичный для
requests
(который входит в комплект с его собственной копиейurllib3
), согласно сертификатам CA - Расширенное использование - Запрашивает документацию 2.8.1 :requests
поставляется с собственным пакетом сертификатов (но он может быть обновлен только вместе с модулем)requests
v2.4.0
) вcertifi
пакет вместо этого , если он установленМера безопасности проверки сертификата HTTPS не является чем-то, от чего можно отказаться без энтузиазма Атака «человек посередине», которую она предотвращает, защищает вас от третьей стороны, например, от проникновения вируса, взлома или кражи ваших данных.
Что, учитывая сегодняшние поддерживаемые правительством глобальные хакерские операции, такие как Tailored Access Operations и Great Firewall Китая , нацеленные на сетевую инфраструктуру, является более вероятным, чем вы думаете.
источник
verify=False
.Для нетерпеливых, быстрый способ отключить Python непроверенное предупреждение HTTPS:
источник
$env:PYTHONWARNINGS="ignore:Unverified HTTPS request"
Принятый ответ не работает, если у некоторых поставщиков пакетов есть собственная копия urllib3, и в этом случае это все равно будет работать:
источник
У меня была похожая проблема с PyVmomi Client. В Python версии 2.7.9 я решил эту проблему с помощью следующей строки кода:
Обратите внимание, что для этого вам нужен Python 2.7.9 по крайней мере.
источник
Почему бы не использовать оригинальную функцию pyvmomi
SmartConnectNoSSL
. Они добавили эту функциюJune 14, 2016
и назвали ееConnectNoSSL
, однажды после того, как они изменили имя наSmartConnectNoSSL
, использовать это вместо передачи предупреждения с ненужными строками кода в вашем проекте?источник
Для Python 2.7
Добавьте переменную окружения PYTHONWARNINGS в качестве ключа и соответствующее значение, которое следует игнорировать, например:
os.environ['PYTHONWARNINGS']="ignore:Unverified HTTPS request"
источник