web-dev-qa-db-fra.com

Obtention d'erreur dans Curl - Le certificat homologue ne peut pas être authentifié avec des certificats d'autorité de certification connus

Je reçois le message d'erreur ci-dessous lors de la connexion SSL avec un certificat auto-signé

Cela fonctionne bien avec le certificat signé par CA. Je règle ce qui suit avec curl_easy_setopt ().

curl_easy_setopt (MonContext, CURLOPT_CAPATH, CA_CERTIFICATE_PATH).

La version curl
libcurl-7.19.7-26

La version Openssl est 0_9_8u.

S'il vous plaît laissez-moi savoir comment résoudre ce problème.

8
user1345697

pour php, désactivez la vérification du certificat par ex. pour curl_exec

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

http://php.net/manual/en/function.curl-setopt.php

(Évaluez vous-même le risque de sécurité. Dans mon cas, c'était sur le serveur d'une société partenaire et le fichier requis ne contenait aucune information sécurisée.

7
zzapper

Par défaut, CURL vérifie généralement que le certificat SSL est valide et émis par une autorité de certification acceptée. Pour ce faire, curl utilise un ensemble de certificats d’autorité de certification.

Si vous souhaitez désactiver la vérification du certificat par curl, utilisez l'option -k (ou --insecure). Voici un exemple:

curl --noproxy -k \* -D - https://127.0.0.1:443/some-secure-endpoint
6
Mark Bonano

Nous avons résolu un problème similaire sur CentOS 6 en mettant à jour curl vers la dernière version disponible dans les référentiels standard et en installant le dernier ensemble de certificats ca:

yum update curl
yum install ca-certificates
3
Arth

libcurl effectue la vérification du certificat SSL homologue par défaut. Ceci est faiten utilisant un ensemble de certificats de CA que la bibliothèque SSL peut utiliser pour s'assurer que le certificat de serveur De l'homologue est valide.

Si vous communiquez avec des serveurs HTTPS ou FTPS à l'aide de certificats Signés par des autorités de certification présentes dans l'ensemble, vous pouvez être sûr que le serveur distant Est vraiment celui qu'il prétend être.

Jusqu'au 7.18.0, curl regroupait un fichier d’ensemble d’applications ca extrêmement obsolète qui était installé par défaut. Ces jours-ci, les archives de Curl ne contiennent pas de certs à Tous. Vous devez les obtenir ailleurs. Voir ci-dessous par exemple.

Pour en savoir plus sur la vérification de certificat SSL Peer, visitez le site http://curl.haxx.se/docs/sslcerts.html

2
user1671192

Bien que cette erreur se soit produite lors de l'utilisation de git clone plutôt que de l'utilisation de curl, je suis récemment tombé sur un message d'erreur identique: 

Le certificat homologue ne peut pas être authentifié avec des certificats d'autorité de certification connus

Semblable à Les conclusions d'Arth , quelque chose qui a fonctionné pour CentOS 6 (afin d'utiliser avec succès les URL HTTPS avec git clone pour les référentiels GitLab associés) impliquait la mise à jour des certificats sécurisés sur le serveur (c'est-à-dire le serveur qui utilise HTTPS), en utilisant les étapes suivantes :

  1. Sudo yum install ca-certificates
  2. Sudo update-ca-trust enable
  3. Sudo cp /path/to/your_new_cert.crt /etc/pki/ca-trust/source/anchors/
  4. Sudo update-ca-trust extract

Peut-être que les mêmes étapes de certificat peuvent être appliquées dans le cas de curl(ou dans d'autres scénarios similaires) pour les utilisateurs de CentOS à l'avenir.

1
summea

En 'c' 

curl_easy_setopt (curl_handle, CURLOPT_SSL_VERIFYPEER, 0);

a travaillé pour moi

0
Leo smith