web-dev-qa-db-fra.com

Comment réparer curl: (60) certificat SSL: chaîne de certificats non valide

Je reçois le message d'erreur suivant lors de l'exécution de curl https://npmjs.org/install.sh | sh sous Mac OSX 10.9 (Mavericks):

install npm@latest
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

Comment puis-je réparer ça?

37
leafiy

En utilisant le navigateur Safari (pas Chrome, Firefox ou Opera) sous Mac OS X 10.9 (Mavericks), visitez https://registry.npmjs.org

Screenshot of Safari showing certificate error

Cliquez sur le bouton Afficher le certificat, puis cochez la case intitulée Toujours faire confiance. Cliquez ensuite sur Continuer et entrez votre mot de passe si nécessaire.

Always trust checkbox

Curl devrait maintenant fonctionner correctement avec cette URL.

65
Lewis Buckley

Tout d’abord, vous devez vous méfier des URL qui génèrent des erreurs SSL. Cela dit, vous pouvez supprimer les erreurs de certificat dans curl avec 

curl -k https://insecure.url/content-i-really-really-trust
22
Steen

Le problème est un certificat intermédiaire arrivé à expiration qui n'est plus utilisé et doit être supprimé. Voici un billet de blog de Digicert expliquant le problème et comment le résoudre.

https://blog.digicert.com/expired-intermediate-certificate/

Je voyais le problème avec Github ne chargeant pas via SSL dans Safari et la ligne de commande avec git pull. Une fois que j'ai supprimé l'ancien CERT expiré, tout allait bien.

18
grempe

Après la mise à jour vers OS X 10.9.2, des problèmes liés aux certificats SSL non valides avec Homebrew, Textmate, RVM et Github ont commencé à apparaître.

Lorsque j'ai initié un brew update, j'obtenais l'erreur suivante:

fatal: unable to access 'https://github.com/Homebrew/homebrew/': SSL certificate problem: Invalid certificate chain
Error: Failure while executing: git pull -q Origin refs/heads/master:refs/remotes/Origin/master

J'ai pu résoudre une partie du problème en désactivant simplement la vérification SSL dans Git. À partir de la console (shell ou terminal, par exemple):

git config --global http.sslVerify false

Je suis assez enclin à le recommander, car cela irait à l’encontre de l’utilisation de SSL, mais c’est le seul conseil que j’ai trouvé qui fonctionne à la limite.

J'ai essayé rvm osx-ssl-certs update all qui a déclaré Already are up to date.

Dans Safari, j’ai visité https://github.com et tenté de définir le certificat manuellement, mais Safari n’a pas présenté les options permettant d’approuver le certificat.

Finalement, j'ai dû réinitialiser Safari (menu Safari-> Réinitialiser Safari ...). Ensuite, visitez github.com et sélectionnez le certificat, puis "Toujours faire confiance". Ce semble est faux et supprime l'historique et les mots de passe stockés, mais cela a résolu mes problèmes de vérification SSL. Une victoire douce-amère.

8
scarver2

NOTE: Cette réponse va manifestement à l’encontre de l’utilisation de SSL et devrait être utilisée avec parcimonie en dernier recours.

Pour ceux qui ont des problèmes avec les scripts qui téléchargent des scripts qui demandent des solutions rapides, créez un fichier appelé ~/.curlrc

Avec le contenu

--insecure

Cela fera en sorte que curl ignore les problèmes de certificat SSL par défaut.

Assurez-vous de supprimer le fichier lorsque vous avez terminé.

METTRE À JOUR

Douze jours plus tard, on m'a notifié un vote positif sur cette réponse, ce qui m'a fait dire "Hmmm, ai-je suivi mon propre conseil? N'oubliez pas de supprimer ce .curlrc?", Et j'ai découvert que je ne l'avais pas fait. Cela souligne donc combien il est facile de laisser votre boucle non sécurisée en suivant cette méthode.

6
ChristopherJ

Une autre cause peut être la duplication de clés dans votre KeyChain. J'ai constaté ce problème sur deux ordinateurs Mac où se trouvaient un duplicata "Autorité de certification racine EV haute assurance DigiCert". L'un se trouvait dans le trousseau de connexion, l'autre dans le système. Supprimer le certificat du trousseau de connexion a résolu le problème.

Cela a affecté le navigateur Safari ainsi que git sur la ligne de commande.

3
Matt Connolly

J'ai commencé à voir cette erreur après avoir installé la dernière mise à jour des outils de ligne de commande (6.1) sur Yosemite (10.10.1). Dans ce cas particulier, un redémarrage du système a corrigé l'erreur (je n'avais pas redémarré depuis la mise à jour).

Mentionnons ceci au cas où quelqu'un avec le même problème rencontrerait cette page, comme je l'ai fait.

1
zzamboni

Après avoir essayé toutes les solutions ci-dessus pour éliminer l'erreur "curl: (60) problème de certificat SSL: impossible d'obtenir un certificat d'émetteur local", la solution qui a finalement fonctionné pour moi sous OSX 10.9 était la suivante:

  1. Recherchez l’emplacement du fichier PEM du certificat curl 'Curl-config --ca' -> /usr/local/etc/openssl/cert.pem

  2. Utilisez l’emplacement du dossier pour identifier le fichier PEM 'Cd/usr/local/etc/openssl'

  3. Créez une sauvegarde du fichier cert.pem 'Cp cert.pem cert_pem.bkup'

  4. Téléchargez le fichier de certificat mis à jour à partir du site Web Curl 'Sudo wget http://curl.haxx.se/ca/cacert.pem '

  5. Copiez le fichier PEM téléchargé pour remplacer l'ancien fichier PEM 'Cp cacert.pem cert.pem'

    Ceci est une version modifiée d'une solution publiée pour corriger le même problème dans Ubuntu que celle-ci:

https://serverfault.com/questions/151157/ubuntu-10-04-curl-how-do-i-fix-update-the-ca-bundle

0