260 votes

Comment gérer les certificats en utilisant cURL tout en essayant d'accéder à une url HTTPS ?

J'obtiens l'erreur suivante en utilisant curl :

curl: (77) error setting certificate verify locations:
  CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none

Comment définir les emplacements de vérification de ce certificat ?

16voto

iOSDev Points 263

En $ man curl :

--cert-type <type>
    (SSL) Tells curl what certificate type the provided  certificate
    is in. PEM, DER and ENG are recognized types.  If not specified,
    PEM is assumed.

    If this option is used several times, the last one will be used.

--cacert <CA certificate>
    (SSL) Tells curl to use the specified certificate file to verify
    the peer. The file may contain  multiple  CA  certificates.  The
    certificate(s)  must be in PEM format. Normally curl is built to
    use a default file for this, so this option is typically used to
    alter that default file.

16voto

Harsha Manjunath Points 451

@roens a raison. Cela concerne tous les Anaconda avec l'erreur suivante
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none

La solution consiste à utiliser le système par défaut curl et éviter en jouant avec l'Anaconda prépodé PATH variable. Vous pouvez soit

  1. Renommer le binaire curl d'Anaconda :)
    mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda

  2. OU supprimer Anaconda curl
    conda remove curl

$ which curl /usr/bin/curl

[0] Anaconda Ubuntu curl problème Github https://github.com/conda/conda-recipes/issues/352

10voto

Michael Enitan Points 21

Si quelqu'un a encore des problèmes, essayez ceci, cela a fonctionné pour moi. Supprimez les fichiers dans votre /etc/ssl/certs/ répertoire puis réinstallez ca-certificates :

sudo apt install ca-certificates --reinstall

C'est ce qui s'est passé lorsque j'ai essayé d'installer Linuxbrew.

8voto

Pablo R. Mier Points 49

Une autre solution pour résoudre ce problème consiste à désactiver la validation du certificat :

echo insecure >> ~/.curlrc

7voto

LJT Points 118

Pour que le code PHP fonctionne sur XAMPP sous Windows, j'ai découvert que je devais modifier le fichier php.ini pour y inclure les éléments suivants

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = curl-ca-bundle.crt

puis copier dans un fichier https://curl.haxx.se/ca/cacert.pem et renommez-le en curl-ca-bundle.crt et placez-le sous \xampp (je n'ai pas réussi à faire fonctionner curl.capath). J'ai également constaté que le CAbundle sur le site cURL n'était pas suffisant pour le site distant auquel je me connectais, et j'ai donc utilisé celui qui est listé avec une version Windows précompilée de curl 7.47.1 à l'adresse suivante http://winampplugins.co.uk/curl/

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