erreurs de certificat pip et SSL

7

J'essaie d'installer une bibliothèque via pip. J'ai un problème avec le certificat SSL, même avec le --cert. Essayez ceci sous Windows (version pip 1.5.4, version 2.7.6 de python):

pip --cert C:\tmp\cacert.pem install robotframework-archivelibrary --proxy http://myproxy

Obtention de la page https://pypi.python.org/simple/robotframework-archivelibrary/ Impossible d'extraire l'URL https://pypi.python.org/simple/robotframework-archivelibrary/ : erreur de connexion: [Errno 1] _ssl.c: 507: erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: échec de la vérification du certificat

Des idées?

empiret
la source

Réponses:

8

J'avais des messages d'erreur similaires dus à l'interception de notre pare-feu d'entreprise (c'est-à-dire un proxy SSL transparent). J'ai exporté le certificat d'autorité de certification racine qui signe le certificat de pare-feu au format .pem et l'ajouté au fichier suivant:

C:\Python27\Lib\site-packages\pip\_vendor\requests\cacert.pem

Cela a résolu mon problème. Votre problème pourrait ne pas être exactement le même, mais si vous obtenez les bons certificats d'AC dans le fichier cacert.pem ci-dessus, je suis sûr que votre échec de vérification du certificat SSL peut être passé.

Craig
la source
4
Pourriez-vous préciser comment exporter un cert de CA racine?
Eran
Oui, je ne sais pas sur quelle autorité de certification racine est exportée. Où allons-nous récupérer l'autorité de certification racine du référentiel source et la transmettre à la ligne de commande, ainsi que vers le pare-feu via le fichier cacert.pem dans les packages de site Python ?
rholmes
J'ai essayé 5 fichiers cacert.pem différents dans des dossiers python, mais l'un d'entre eux a finalement fonctionné: l' C:\Python27\Lib\site-packages\certifi\cacert.pem un d'entre eux a également reçu un traitement
endolith
2

Comme --certcela ne fonctionne pas pour vous, vous utilisez probablement le mauvais fichier de certificat.

Le plus souvent, vous êtes derrière un proxy d'entreprise. Vous devez donc exporter votre certificat racine en accédant à l'URL défaillante (par exemple https://pypi.python.org/simple/robotframework-archivelibrary/, voir: Comment enregistrer un certificat SSL de serveur distant localement sous forme de fichier ).

Si c'est au format CER, convertissez-le en PEM .

Puis utilisez ce fichier PEM, par exemple

pip --cert root-cert.pem install robotframework-archivelibrary

Voir aussi: échec de l'installation du programme d'installation avec "erreur de connexion: [SSL: CERTIFICATE_VERIFY_FAILED]" .

Kenorb
la source
0

Ajoutez ceci à votre configuration de pip, qui sous Windows est C:\Users\<user>\pip\pip.ini.

[global]
  trusted-host = pypi.python.org
  proxy = <proxy>:<port>

Trouvez votre mandataire en suivant ces instructions.

cmo
la source