175 votes

Comment ajouter un certificat CA Root personnalisé au magasin de CA utilisé par pip dans Windows ?

J'ai simplement installé Python3 depuis python.org et j'ai des problèmes pour installer des paquets avec pip. Par conception, il y a un appareil d'inspection de paquets de type man-in-the-middle sur le réseau ici qui inspecte tous les paquets (y compris ssl) en signant à nouveau toutes les connexions ssl avec son propre certificat. Une partie du GPO pousse le certificat racine personnalisé dans le Keystore de Windows.

Lorsque j'utilise Java, si j'ai besoin d'accéder à des sites externes en https, je dois mettre à jour manuellement les cacerts dans le JVM pour faire confiance au certificat CA autosigné.

Comment puis-je accomplir cela pour python? Actuellement, lorsque j'essaie d'installer des packages en utilisant pip, de manière compréhensible, je reçois de magnifiques erreurs [SSL: CERTIFICATE_VERIFY_FAILED].

Je réalise que je peux les ignorer en utilisant le paramètre --trusted-host, mais je ne veux pas le faire pour chaque package que j'essaie d'installer.

Y a-t-il un moyen de mettre à jour le magasin de certificats CA que python utilise?

11 votes

@rfkortekaas Toutes ces options impliquent d'ajouter quelque chose de nouveau au processus. Python doit utiliser un magasin de confiance par défaut stocké quelque part sur le système. J'aimerais modifier ce magasin de confiance. Je ne veux pas ajouter de variables supplémentaires, de magasins de certificats différents, etc. En java, la jvm repose sur son propre magasin de confiance (séparé du système d'exploitation). Je soupçonne que Python doit faire quelque chose de similaire puisque mon certificat root est dans mon magasin Windows et non reconnu par Python.

2 votes

@eric_b vous devriez accepter une réponse.

3voto

TonyM Points 21

Je pense que la solution de nt86 est la plus appropriée car elle tire parti de l'infrastructure Windows sous-jacente (magasin de certificats). Mais cela n'explique pas comment installer python-certifi-win32 pour commencer étant donné que pip ne fonctionne pas.

Le truc est d'utiliser --trustedhost pour installer python-certifi-win32, après quoi, pip utilisera automatiquement le magasin de certificats Windows pour charger le certificat utilisé par le proxy.

Donc en résumé, vous devriez faire:

pip install python-certifi-win32 -trustedhost pypi.org

et après cela, vous devriez être prêt à partir

-3voto

Sergiu I Points 106

Ouvrez Anaconda Navigator.

Allez dans Fichier\Préférences.

Activer la vérification SSL Désactiver (non recommandé)

ou Activer et indiquer le chemin du certificat SSL (facultatif)

Mettre à jour un package vers une version spécifique :

Sélectionnez Installer en haut à droite

Sélectionnez le package, cliquez sur la coche

Marquer pour mise à jour

Marquer pour installation d'une version spécifique

Cliquez sur Appliquer

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X