[python] Errore SSL InsecurePlatform quando si utilizza il pacchetto Richieste



6 Answers

Le richieste 2.6 hanno introdotto questo avviso per gli utenti di python precedenti alla 2.7.9 con solo i moduli SSL stock disponibili.

Supponendo che non sia possibile eseguire l'aggiornamento a una versione più recente di python, verranno installate librerie SSL Python più aggiornate:

pip install --upgrade ndg-httpsclient 

TUTTAVIA, questo può fallire su alcuni sistemi senza le dipendenze di build per pyOpenSSL. Sui sistemi debian, eseguirlo prima del comando pip precedente dovrebbe essere sufficiente per pyOpenSSL da compilare:

apt-get install python-dev libffi-dev libssl-dev
Question

Sto usando Python 2.7.3 e richieste. Ho installato le richieste via pip. Credo che sia l'ultima versione. Sto girando su Debian Wheezy.

Ho usato molte Richieste in passato e non ho mai dovuto affrontare questo problema, ma sembra che quando si effettuano richieste https con Requests ottengo un'eccezione InsecurePlatform .

L'errore menziona urllib3 , ma non l'ho installato. L'ho installato per verificare se ha risolto l'errore, ma non l'ha fatto.

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3
/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not
available. This prevents urllib3 from configuring SSL appropriately and 
may cause certain SSL connections to fail. For more information, see 
https://urllib3.readthedocs.org/en/latest  
/security.html#insecureplatformwarning.

Qualche idea sul motivo per cui sto ricevendo questo? Ho controllato i documenti, come specificato nel messaggio di errore, ma i documenti stanno dicendo di importare urllib3 e disabilitare l'avviso o fornire un certificato.







Non installare pyOpenSSL poiché sarà presto deprecato. L'approccio migliore attualmente è-

import requests
requests.packages.urllib3.disable_warnings()



se vuoi solo fermare l'avvertimento insicuro come:

/usr/lib/python3/dist-packages/urllib3/connectionpool.py:794: InsecureRequestWarning: la richiesta HTTPS non verificata è in corso. L'aggiunta della verifica del certificato è fortemente consigliata. Vedi: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning)

fare:

requests.METHOD("https://www.google.com", verify=False)

verificare = False

è la chiave, i seguenti non sono buoni a questo:

requests.packages.urllib3.disable_warnings ()

o

urllib3.disable_warnings ()

ma, DEVI SAPERE, ciò potrebbe causare potenziali rischi per la sicurezza .




Tutte le soluzioni fornite qui non hanno aiutato (sono limitato a Python 2.6.6). Ho trovato la risposta in un semplice passaggio per passare a pip:

$ sudo pip install --trusted-host pypi.python.org <module_name>

Questo dice a pip che è OK prendere il modulo da pypi.python.org.

Per me, il problema è il proxy della mia azienda dietro al suo firewall che lo fa sembrare un client malevolo per alcuni server. Hooray sicurezza.




Ho appena avuto un problema simile su un server CentOS 5 in cui ho installato python 2.7.12 in / usr / local su una versione molto più vecchia di python2.7. L'aggiornamento a CentOS 6 o 7 non è un'opzione su questo server in questo momento.

Alcuni dei moduli python 2.7 erano ancora esistenti dalla versione precedente di python, ma il pip non si aggiornava perché il pacchetto di crittografia più recente non è supportato dai pacchetti CentOS 5.

In particolare, "richieste di installazione di pip [sicurezza]" non funzionavano perché la versione di openssl su CentOS 5 era 0.9.8e che non è più supportata da crittografia> 1.4.0.

Per risolvere il problema originale degli OP ho fatto:

1) pip install 'cryptography<1.3.5,>1.3.0'.  

Questo ha installato la crittografia 1.3.4 che funziona con openssl-0.9.8e. cryptograpy 1.3.4 è anche sufficiente per soddisfare il requisito del seguente comando.

2) pip install 'requests[security]'

Questo comando ora viene installato perché non tenta di installare la crittografia> 1.4.0.

Nota che su CentOS 5 dovevo anche:

yum install openssl-devel

Per consentire la creazione di crittografia




Prima dovevo andare a bash (da ZSH). Poi

sudo -H pip install 'requests[security]' --upgrade

risolto il problema




Related