Piszę skrypty w Python2.6 przy użyciu pyVmomi i przy użyciu jednej z metod połączenia:
service_instance = connect.SmartConnect(host=args.ip,
user=args.user,
pwd=args.password)
Otrzymuję następujące ostrzeżenie:
/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)
Co ciekawe, nie mam zainstalowanego urllib3 z pipem (ale jest on w /usr/lib/python2.6/site-packages/requests/packages/urllib3/ ).
Próbowałem zgodnie z sugestią tutaj
import urllib3
...
urllib3.disable_warnings()
ale to nic nie zmieniło.
Odpowiedzi:
Możesz wyłączyć wszelkie ostrzeżenia w języku Python za pomocą
PYTHONWARNINGS
zmiennej środowiskowej. W takim przypadku chcesz:Aby wyłączyć za pomocą kodu Python (
requests >= 2.16.0
):Dla
requests < 2.16.0
, zobaczyć oryginalne odpowiedź poniżej.Oryginalna odpowiedź
Powód robienia
urllib3.disable_warnings()
dla którego to nie działało, jest to, że wygląda na to, że używasz osobnej instancji urllib3 sprzedawanej w żądaniach.Zbieram to na podstawie ścieżki tutaj:
/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py
Aby wyłączyć ostrzeżenia w sprzedawanym urllib3 żądań, musisz zaimportować tę konkretną instancję modułu:
źródło
PYTHONWARNINGS="ignore:Unverified HTTPS request"
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
.Jest to odpowiedź w 2017 roku
urllib3
nie jest częściąrequests
jużźródło
requests >= 2.16.0
requests
wersja jest2.21.0
i maurllib3
. Próbowałem2.16.0
, `2.16.1, and
2.17.0` i wszystkie miałyurllib3
. Próbowałem jednak2.4.0
i tego nie miałem. Czy dodali go ponownie?Zgodnie z tym komentarzem github można wyłączyć
urllib3
ostrzeżenia o żądaniach zarequests
pomocą 1-liniowej linii:requests.packages.urllib3.disable_warnings()
Spowoduje to jednak usunięcie wszystkich ostrzeżeń, nie tylko
InsecureRequest
(tj. To również pominieInsecurePlatform
itp.). W przypadkach, gdy po prostu chcemy, aby rzeczy działały, uznaję zwięzłość za przydatną.źródło
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
wydaje się działać.Prawidłowym sposobem jest przeczytanie odpowiedniej sekcji na podanym linku i zrobienie tego, co mówi. Sposób specyficzny dla
requests
(który dołączany jest do własnej kopiiurllib3
), zgodnie z certyfikatami CA - Zaawansowane użycie - Żądanie dokumentacji 2.8.1 :requests
jest dostarczany z własnym pakietem certyfikatów (ale można go aktualizować tylko wraz z modułem)requests
v2.4.0
) zcertifi
pakietu zamiast jeśli jest zainstalowanyŚrodek bezpieczeństwa weryfikacji certyfikatu HTTPS nie należy lekceważyć. Atak typu Man-in-the-middle, który zapobiega, chroni cię przed osobami trzecimi, np. Wyciekiem wirusa, manipulacją lub kradzieżą danych.
Co przy dzisiejszych wspieranych przez rząd globalnych operacjach hakerskich, takich jak Dostosowane operacje dostępu i Wielka zapora ogniowa Chin ukierunkowana na infrastrukturę sieci, jest bardziej prawdopodobne niż myślisz.
źródło
verify=False
.Dla niecierpliwych szybki sposób na wyłączenie pythonowego niezweryfikowanego ostrzeżenia HTTPS:
źródło
$env:PYTHONWARNINGS="ignore:Unverified HTTPS request"
Akceptowana odpowiedź nie działa, jeśli niektórzy dostawcy pakietów mają własną kopię urllib3, w którym to przypadku nadal będzie działać:
źródło
Miałem podobny problem z PyVmomi Client. W wersji Python 2.7.9 rozwiązałem ten problem za pomocą następującego wiersza kodu:
Zauważ, że aby to zadziałało, potrzebujesz przynajmniej Python 2.7.9.
źródło
Dlaczego nie używając pyvmomi pierwotną funkcję
SmartConnectNoSSL
. Oni dodaje tę funkcjęJune 14, 2016
i nazwał toConnectNoSSL
, jeden dzień po zmienili nazwęSmartConnectNoSSL
, używania, że zamiast przekazując ostrzeżenie ze zbędnych linii kodu w swoim projekcie?źródło
Dla Python 2.7
Dodaj zmienną środowiskową PYTHONWARNINGS jako klucz i odpowiednią wartość do zignorowania, np .:
os.environ['PYTHONWARNINGS']="ignore:Unverified HTTPS request"
źródło