web-dev-qa-db-fra.com

Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] échec de la vérification du certificat (_ssl.c: 749)

De nombreuses opérations dans python nécessitent un accès via https. Cela inclut l'installation par pip, ou simplement l'utilisation de http.client.HTTPSConnection, ou de tout module ou application utilisant ces éléments en interne.

Si python a été installé à partir du programme d'installation officiel de python pkg, téléchargé de https://python.org , il utilise une version interne de openssl et ne contient aucun certificat racine. Tout ce qui utilise une connexion SSL entraîne cette erreur:

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)

Comment puis-je installer des certificats racine pour éliminer l'erreur ci-dessus?

47
Edward Ned Harvey

Lorsque vous exécutez le programme d'installation python, ils vous affichent ces informations. Il est également documenté dans /Applications/Python 3.6/ReadMe.rtf, mais il est très facilement négligé.

Il suffit de parcourir Applications/Python 3.6 et de double-cliquer sur Install Certificates.command

Il y a un problème dans le traqueur de bogues Python à ce sujet. http://bugs.python.org/issue2948

Mise à jour: Ce problème est marqué comme résolu dans le suivi des bogues, ce commentaire étant le dernier en date:

Pour 3.7.0b2, j'ai essayé de rendre les choses plus évidentes de deux manières. Premièrement, le programme d’installation va maintenant tenter d’ouvrir une fenêtre du Finder pour le dossier/Application/Python 3.7 qui contient "Install Certificates.command". Deux, plutôt qu'un message générique "Installation terminée" à la fin de l'installation, il existe maintenant un message personnalisé qui invite l'utilisateur à cliquer sur l'icône "Installer Certificates.command".

132
Edward Ned Harvey

Une solution peu coûteuse consiste simplement à utiliser python3.5 s'il est toujours installé.

Pousser vers PyPI:

python3.5 setup.py register -r pypitest

python3.5 setup.py sdist upload -r pypitest

pipping semble bien fonctionner avec 3.6 hors de la boîte.

2
jarekwg

J'ai résolu ce problème en utilisant cette commande:

open /Applications/Python\ 3.7/Install\ Certificates.command

J'ai Python 3.7 sur ma machine.

Vérifiez ce lien - Correction de l'erreur CERTIFICATE_VERIFY_FAILED lors de la tentative de request-html sur Mac

1
hyung ook An

J'ai rencontré le même problème lorsque j'ai essayé d'exécuter Python avec le chargement de données Keras. L'erreur pour moi était:

Exception: URL fetch failure on AWS_URL: None -- [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)

J'ai résolu mon problème en mettant à niveau le certificat en tant que:

pip install --upgrade certifi
0
Ratha Pech