J'utilise Ubuntu 14.04. Lorsque j'utilise curl, j'obtiens l'erreur suivante:
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:
D'après ce que je comprends de Google, l'emplacement de CAfile qu'il recherche n'est pas correct pour Ubuntu (et il n'existe pas sur mon ordinateur), /etc/ssl/certs/ca-certificates.crt
est l'emplacement approprié.
La plupart des solutions impliquaient de définir la variable d'environnement CURL_CA_BUNDLE
à l'emplacement approprié ou d'ajouter cacert=/etc/ssl/certs/ca-certificates.crt
au fichier (nouvellement créé) .curlrc
de mon répertoire personnel. J'ai essayé les deux, et ni résoudre complètement le problème. curl trouve cet emplacement, mais cela ne fonctionne toujours pas, donnant l'erreur suivante:
curl: (60) SSL certificate problem: self signed certificate in certificate chain
J'ai également essayé de désinstaller et de réinstaller curl dans Ubuntu et de mettre à jour mes certificats de certification avec $ Sudo update-ca-certificates --fresh
qui les a mis à jour, mais je n'ai toujours pas fait l'erreur 60 disparaître.
Je ne connais pas très bien les certificats de certification CA et je doute que j’ai ajouté à dessein des certificats auto-signés par le passé. Peut-être par accident, je ne sais pas.
Est-ce que quelqu'un sait comment réparer ceci? Existe-t-il un moyen de repartir à zéro avec tous mes certs? Ou est-ce que quelqu'un sait même comment je vais savoir où se trouve ce certificat auto-signé et comment le retirer?
PS: Je ne veux pas utiliser le drapeau -k (aka --insecure). Je veux que cela fonctionne en toute sécurité.
Après avoir étudié et travaillé ces derniers jours, je me suis mis au travail et la réponse a été plutôt simple.
Je devais définir capath=/etc/ssl/certs/
dans mon fichier .curlrc
.
Cela a curl travailler sur la ligne de commande. Pour que Curl fonctionne encore dans R (où j'ai rencontré le problème pour la première fois), je devais aussi avoir cacert=/etc/ssl/certs/ca-certificates.crt
dans mon fichier .curlrc
comme précédemment essayé, sinon, il a continué à rechercher /etc/pki/tls/certs/ca-bundle.crt
Je ne sais toujours pas pourquoi j'ai constaté l'erreur concernant les certificats auto-signés.
Sur la base d'autres découvertes aléatoires, j'ai également téléchargé un certificat du site Web de Curl avec:
Sudo wget http://curl.haxx.se/ca/cacert.pem
dans le même répertoire certs
. Avoir cafile
pointé sur cela a également fonctionné. En fin de compte, je l'ai remis à ca-certificates.crt
et cela fonctionne toujours.
Je ne comprends pas exactement pourquoi cela a fonctionné ou ce qui se passe, mais c'est résolu.
cafile la touche ne fonctionne pas pour moi (curl 7.45.0) mais cacert (de l'option --cacert) le fait. Mon fichier . Curlrc:
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Après quelques recherches, je l'ai mis au travail et la réponse a été plutôt simple. Faire pas à pas
Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 Sudo wget http://curl.haxx.se/ca/cacert.pem
L’étape 3 téléchargera le fichier pem dans le dossier certs
Step 4: Check if .curlrc file is available in your home folder or not.
.curlrc est un fichier caché. vérifiez par ctrl + h dans le répertoire de base. sinon il y a alors sur le type de terminal
Step 5: nano ~/.curlrc
Step 6: Now paste the below lines in the open file
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.
N.B Ici, j'ai utilisé l'éditeur nano, mais vous pouvez utiliser n'importe quel éditeur.
Nous avons rencontré le même problème avec l’un de nos programmes C++ dans Ubuntu 14.04.5. le . curlrc la méthode ne prenait pas effet.
Cela a été résolu en téléchargeant le ca-certificats.crt à / etc/ssl/certs/ca-certificates.crt et créer un lien symbolique ca-bundle.crt sous / etc/pki/tls/certs / annuaire.
J'espère que cela t'aides!