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.
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.
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
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
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
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 :
Sudo yum install ca-certificates
Sudo update-ca-trust enable
Sudo cp /path/to/your_new_cert.crt /etc/pki/ca-trust/source/anchors/
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.
En 'c'
curl_easy_setopt (curl_handle, CURLOPT_SSL_VERIFYPEER, 0);
a travaillé pour moi