Estou escrevendo scripts em Python2.6 com o uso de pyVmomi e enquanto estiver usando um dos métodos de conexão:
service_instance = connect.SmartConnect(host=args.ip,
user=args.user,
pwd=args.password)
Recebo o seguinte aviso:
/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)
O interessante é que eu não tenho o urllib3 instalado com o pip (mas existe em /usr/lib/python2.6/site-packages/requests/packages/urllib3/ ).
Eu tentei como sugerido aqui
import urllib3
...
urllib3.disable_warnings()
mas isso não mudou nada.
Respostas:
Você pode desativar qualquer aviso do Python através da
PYTHONWARNINGS
variável de ambiente. Nesse caso, você deseja:Para desativar o uso do código Python (
requests >= 2.16.0
):Para
requests < 2.16.0
, veja a resposta original abaixo.Resposta original
O motivo de
urllib3.disable_warnings()
não funcionar para você é porque parece que você está usando uma instância separada do urllib3 vendida dentro de solicitações.Eu recolho isso com base no caminho aqui:
/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py
Para desativar os avisos no urllib3 fornecido pelas solicitações, você precisará importar essa instância específica do módulo:
fonte
PYTHONWARNINGS="ignore:Unverified HTTPS request"
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
.Esta é a resposta em 2017.
urllib3
não fazrequests
mais partefonte
requests >= 2.16.0
requests
versão é2.21.0
e temurllib3
. Eu tentei2.16.0
, `2.16.1, and
2.17.0` e todos eles tinhamurllib3
. Eu tentei2.4.0
e aquele não tinha, no entanto. Eles adicionaram de volta?De acordo com este comentário do github , é possível desativar os
urllib3
avisos de solicitação viarequests
em um liner:requests.packages.urllib3.disable_warnings()
Isso suprimirá todos os avisos, não apenas
InsecureRequest
(isto é, também suprimiráInsecurePlatform
etc). Nos casos em que apenas queremos que as coisas funcionem, acho a concisão útil.fonte
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
parece funcionar.A maneira correta é ler a seção relevante no link fornecido e fazer o que ele diz. A maneira específica de
requests
(que agrupa sua própria cópiaurllib3
), conforme a documentação de Certificados da CA - Uso avançado - Solicitações 2.8.1 :requests
é fornecido com seu próprio pacote de certificados (mas só pode ser atualizado com o módulo)requests
v2.4.0
) ocertifi
pacote, se estiver instaladoA medida de segurança da verificação de certificado HTTPS não é algo a ser descartado com entusiasmo. O ataque Man-in-the-middle que impede que você o proteja de terceiros, por exemplo, invadindo um vírus ou adulterando ou roubando seus dados.
O que, com as operações globais atuais de hackers, apoiadas pelo governo, como as Operações de Acesso Personalizado e o Grande Firewall da China, direcionadas à infraestrutura de rede, é mais provável do que você pensa.
fonte
verify=False
.Para impaciente, uma maneira rápida de desativar o aviso HTTPS não verificado do python:
fonte
$env:PYTHONWARNINGS="ignore:Unverified HTTPS request"
A resposta aceita não funcionará se alguns fornecedores de pacotes tiverem sua própria cópia do urllib3; nesse caso, isso ainda funcionará:
fonte
Eu tive um problema semelhante com o PyVmomi Client. Com o Python versão 2.7.9, resolvi esse problema com a seguinte linha de código:
Observe que, para que isso funcione, você precisa do Python 2.7.9 pelo menos.
fonte
Por que não usar a função original pyvmomi
SmartConnectNoSSL
. Eles adicionaram essa funçãoJune 14, 2016
e o nomearamConnectNoSSL
, um dia depois de alterar o nome paraSmartConnectNoSSL
, use-o em vez de passar o aviso com linhas de código desnecessárias no seu projeto?fonte
Para Python 2.7
Inclua a variável de ambiente PYTHONWARNINGS como chave e o valor correspondente a ser ignorado, como:
os.environ['PYTHONWARNINGS']="ignore:Unverified HTTPS request"
fonte