J'obtiens l'erreur suivante en utilisant curl:
curl: (77) erreur de configuration du certificat vérifier les emplacements: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: aucun
Comment définir les emplacements de vérification de ce certificat? Merci.
ca-certificates
installé mais l'erreur a persisté. Le problème était que mes certificats étaient situés au/etc/ssl/certs/ca-certificates.crt
lieu de/etc/pki/tls/certs/ca-bundle.crt
, donc je devais simplement définir la variable d'environnementCURL_CA_BUNDLE
sur le chemin correct.export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
.Réponses:
Cette erreur est liée à un paquet manquant :
ca-certificates
. Installez-le.Dans Ubuntu Linux (et distribution similaire):
Dans CygWin via Apt-Cyg
Dans Arch Linux (Raspberry Pi)
La documentation dit:
Comme vu à: Debian - Détails du paquet ca-certificates dans squeeze
la source
pacman -S ca-certificates-utils
. J'ai fait.sudo apt install --reinstall ca-certificates
réinstallé le paquet et résolu les erreurs que je voyaisJ'avais également installé la dernière version des certificats ca mais je recevais toujours l'erreur:
Le problème était que curl s'attendait à ce que le certificat se trouve sur le chemin,
/etc/pki/tls/certs/ca-bundle.crt
mais ne pouvait pas le trouver car il était sur le chemin/etc/ssl/certs/ca-certificates.crt
.Copier mon certificat vers la destination attendue en exécutant
travaillé pour moi. Vous devrez créer des dossiers pour la destination cible s'ils n'existent pas en exécutant
Si nécessaire, modifiez la commande ci-dessus pour que le nom du fichier de destination corresponde au chemin attendu par curl, c'est-à-dire remplacez-le
/etc/pki/tls/certs/ca-bundle.crt
par le chemin suivant "CAfile:" dans votre message d'erreur.la source
ln -s
si vous ne souhaitez pas le recopier à chaque fois que vous le mettez à jour.rescuetime
application sur Fedora 25. asudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crt
résolu le problème. (CURL_CA_BUNDLE
env var n'a pas fonctionné)sudo ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.pem
. J'obtenais en fait ceThe repository ... does not have a Release file
qui était causé par un certificat manquant (Could not load certificates from ...
).Mettez ceci dans votre
.bashrc
(voir commentaire de Robert)
la source
$CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"
à la.xonshrc
).CURL_CA_BUNDLE=/path/to/bundle.crt curl http://example.com
Créez un fichier
~/.curlrc
avec le contenu suivantla source
~/.curlrc
cacert=/etc/openssl/cert.pem
Le moyen le plus rapide de contourner l'erreur est d'ajouter l'option -k quelque part dans votre requête curl. Cette option "autorise les connexions aux cites SSL sans certificats". (de curl --help)
Sachez que cela peut signifier que vous ne parlez pas au point de terminaison que vous pensez être, car il présente un certificat non signé par une autorité de certification de confiance.
Par exemple:
m'a donné la réponse d'erreur suivante:
J'ai ajouté sur -k:
et aucun message d'erreur. En prime, j'ai maintenant apt-cyg installé. Et ca-certificats.
la source
-k
drapeau signifie que vous perdez la vérification. Selon vos besoins, cela peut être acceptable. Les MITM sont des attaques non triviales si vous supposez que votre réseau et le serveur avec lequel vous communiquez sont protégés contre les intrus (pouvez-vous faire cette hypothèse?). Le risque augmente en fonction du type de vos données (le code source et les certificats sont plus risqués que les images). Vous pouvez vérifier l'intégrité des données après le transfert (sommes de contrôle, etc.), mais maintenant vous transférez votre confiance sur ce canal de somme de contrôle. En fin de compte,-k
vous obtenez un peu plus de travail.@roens a raison. Cela affecte tous les utilisateurs d' Anaconda , avec l'erreur ci-dessous
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none
La solution de contournement consiste à utiliser la boucle système par défaut et à éviter de jouer avec la
PATH
variable Anaconda pré-ajoutée . Tu peux soitRenommez le binaire Anaconda curl :)
mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda
OU supprimer Anaconda curl
conda remove curl
$ which curl /usr/bin/curl
[0] Anaconda Ubuntu curl Github issue https://github.com/conda/conda-recipes/issues/352
la source
curl
par le chemin complet/usr/bin/curl
De
$ man curl
:la source
Pour le code PHP fonctionnant sur XAMPP sous Windows, j'ai trouvé que je devais modifier php.ini pour inclure ce qui suit
puis copiez dans un fichier https://curl.haxx.se/ca/cacert.pem et renommez-le en curl-ca-bundle.crt et placez-le sous \ xampp path (je n'ai pas pu faire fonctionner curl.capath) . J'ai également trouvé que le CAbundle sur le site cURL n'était pas suffisant pour le site distant auquel je me connectais, alors j'en ai utilisé un qui est répertorié avec une version Windows pré-compilée de curl 7.47.1 à http://winampplugins.co.uk /boucle/
la source
J'ai eu exactement le même problème. En fait, mon
/etc/ssl/certs/ca-certificates.crt
fichier était mal formé. La dernière entrée montrait quelque chose comme ceci:Après avoir ajouté une nouvelle ligne auparavant
-----END CERTIFICATE-----
, curl était capable de gérer le fichier de certificats.C'était très ennuyeux à découvrir car mon
update-ca-certificates
commandement ne m'a donné aucun avertissement.Cela peut ou non être un problème spécifique à la version de curl, voici donc ma version, juste pour être complète:
la source
Cela a fonctionné pour moi
puis allez dans le dossier des certificats à
puis copiez le fichier ca-certificates.crt dans le
/etc/pki/tls/certs
s'il n'y a pas de dossier tls / certs: créez-en un et modifiez les permissions à l'aide de chmod 777 -R folderNAME
la source
Une autre alternative pour résoudre ce problème consiste à désactiver la validation du certificat:
la source
curl effectue la
SSL
vérification des certificats par défaut, en utilisant un "bundle" deCertificate Authority (CA)
clés publiques (certificats CA). Le bundle par défaut est nommé curl-ca-bundle.crt; vous pouvez spécifier un autre fichier à l'aide de l'option --cacert.Si ce
HTTPS
serveur utilise un certificat signé par une autorité de certification représentée dans le bundle, la vérification du certificat a probablement échoué en raison d'un problème avec le certificat (il a peut-être expiré ou le nom peut ne pas correspondre au nom de domaine dans l'URL).Si vous souhaitez désactiver la vérification du certificat par curl, utilisez l'
--insecure
option -k (ou ).par exemple
la source
Il semble que votre curl pointe vers un fichier non existant avec des certificats CA ou similaire.
Pour la référence principale sur les certificats d'autorité de certification avec curl, voir: https://curl.haxx.se/docs/sslcerts.html
la source
Créez simplement les dossiers manquants dans votre système.
et créez le fichier à l'aide de la commande suivante,
puis copiez et collez le certificat dans le dossier de destination, qui s'affiche dans votre erreur .. le mien était "
with message 'error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none' in
" assurez-vous de coller le fichier à l'emplacement exact mentionné dans l'erreur. Utilisez la commande suivante pour copier-coller.Fixé.
la source
Pour ce que ça vaut, la vérification
which curl
est en cours d'exécution est également importante.Un utilisateur sur une machine partagée que je gère avait reçu cette erreur. Mais la cause s'est avérée être parce qu'ils avaient installé Anaconda ( http://continuum.io ). Ce faisant, mettre chemin binaire Anaconda avant que la norme
$PATH
, et il est livré avec son proprecurl
binaire, qui avait du mal à trouver les certs par défaut qui ont été installés sur cette machine Ubuntu.la source
which -a curl
pour voir tout ce qui est disponible, et bien sûr de noter lequel vient en tête.Si quelqu'un a encore des problèmes, essayez ceci, cela a fonctionné pour moi. Supprimez les fichiers de votre
/etc/ssl/certs/
répertoire puis réinstallez les certificats ca:Je l'ai fait quand j'ai essayé d'installer Linuxbrew.
la source
Si vous utilisez homebrew sur macOS ou linuxbrew sous Linux, essayez de réinstaller le
openssl
etcurl
en suivant les étapes suivantes à partir de cette page .Vous devrez peut-être démarrer une nouvelle session shell pour vérifier le résultat avec
S'il affiche la sortie suivante en sortie, le problème devrait être résolu!
Références:
la source
J'ai le même problème: je crée une image docker alpine, et lorsque je souhaite accéder à un site Web de mon organisation, cette erreur apparaît. Pour le résoudre, je dois obtenir le certificat CA de mon entreprise, puis je dois l'ajouter aux certificats CA de mon image.
Obtenez le certificat CA
Utilisez OpenSSL pour obtenir les certificats liés au site Web:
Cela affichera quelque chose comme:
Obtenez le dernier certificat (le contenu entre le
-----BEGIN CERTIFICATE-----
et les-----END CERTIFICATE-----
balises incluses) et enregistrez-le dans un fichier (mycompanyRootCA.crt par exemple)Construisez votre image
Ensuite, lorsque vous construirez votre image docker à partir d'alpin, procédez comme suit:
Votre image fonctionnera désormais correctement! \ o /
la source
Trouvez simplement que cette solution fonctionne parfaitement pour moi.
J'ai trouvé cette solution d' ici
la source
L'erreur est due à des fichiers de certificat de chaîne SSL corrompus ou manquants dans le répertoire PKI. Vous devrez vous assurer que les fichiers peuvent être regroupés en suivant les étapes suivantes: Dans votre console / terminal:
Entrez sur ce site: https://rpmfind.net/linux/rpm2html/search.php?query=ca-certificates , obtenez votre certificat CA, pour SO. Copiez l'url de téléchargement et collez-la dans l'url: wget your_url_donwload_ca-ceritificated.rpm maintenant, installez votre rpm:
maintenant redémarrez votre service: mon exemple cette commande:
la source
Exécutez la commande suivante dans git bash qui fonctionne bien pour moi
la source
Cela a résolu pour moi:
la source
J'ai trouvé cette solution facile et sécurisée. Il s'agit simplement de changer le chemin de deux valeurs dans le
php.ini
fichier. Suivez les instructions ici: https://ourcodeworld.com/articles/read/196/xampp-wampp-php-ssl-certificate-error-unable-to-get-local-issuer-certificatela source
Ci-dessous, décrivez les étapes pour résoudre les problèmes.
1. Découvrez que le fichier existe sur l'URL de définition.
2. Sinon, téléchargez le fichier à partir de l'URL. https://curl.haxx.se/ca/cacert.pem
3. Copiez et pestez le fichier dans le chemin défini sur le fichier php.ini.
4. Redémarrez le service Apache.
la source
J'ai eu ce problème et il s'est avéré que ma version de CURL ne pouvait pas analyser les certificats encodés DER (et ne faisait pas non plus attention à l'option --cert-type). Lorsque j'ai converti le certificat au format PEM, cela a fonctionné.
la source
Dans mon cas, le
/etc/ssl/certs/ca-certificates.crt
fichier manquait. Il s'est avéré que j'ai supprimé le contenu de/etc/ssl/certs
dans le Dockerfile lors de la création de l'image Docker. Après avoir ajusté mes scripts shell / commandes bash exécutées à partir du Dockerfile - curl fonctionne maintenant parfaitement à partir du nouveau conteneur.la source