Pour une raison quelconque, je ne peux pas utiliser CURL avec HTTPS. Tout fonctionnait bien jusqu'à ce que je lance la mise à niveau des bibliothèques curl. Maintenant, je rencontre cette réponse en essayant d'exécuter des requêtes CURL: Problème avec le certificat SSL CA (chemin? Droits d'accès?)
Suite aux suggestions publiées ici sur des problèmes connexes, j'ai essayé de faire ce qui suit:
Désactiver la vérification pour l'hôte et le pair
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Activez
CURLOPT_SSL_VERIFYPEER
et pointez sur cacert.pem téléchargé depuis http://curl.haxx.se/docs/caextract.htmlcurl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
J'ai également essayé de faire la même chose avec positiveSSL.ca-bundle qui était fourni comme certificat CA de bundle pour le serveur auquel j'essaie de me connecter.
Modifier les paramètres php ini avec
curl.cainfo=cacert.pem
(fichier dans le même répertoire et accessible par apache)Renommer
/etc/pki/nssdb
en/etc/pki/nssdb.old
Malheureusement, aucun des éléments ci-dessus ne peut résoudre mon problème et je reçois constamment un problème avec le message SSL CA cert (chemin? Droits d'accès?).
Et je n'ai pas besoin de cette vérification en premier lieu (je suis conscient des problèmes de sécurité).
Quelqu'un a-t-il d'autres suggestions?
METTRE À JOUR
Après la mise à jour vers les dernières bibliothèques et le redémarrage de toute la boîte, pas seulement Apache que je faisais, tout semble fonctionner à nouveau !!!
Réponses:
Selon la documentation: pour vérifier l'hôte ou le certificat homologue, vous devez spécifier des certificats alternatifs avec l'
CURLOPT_CAINFO
option ou un répertoire de certificats peut être spécifié avec l'CURLOPT_CAPATH
option.Regardez aussi
CURLOPT_SSL_VERIFYHOST:
la source
SSL verification disabled
)Nous avons eu le même problème sur une machine CentOS7. La désactivation de
VERIFYHOST
VERIFYPEER
n'a pas résolu le problème, nous n'avons plus eu l'erreur cURL mais la réponse était toujours invalide. Faire unwget
sur le même lien que le cURL provoquait également une erreur de certificat.-> Notre solution était également de redémarrer le VPS, cela l'a résolu et nous avons pu compléter à nouveau la demande.
Pour nous, cela semblait être un problème de corruption de la mémoire. Le redémarrage du VPS a rechargé à nouveau la bibliothèque dans la mémoire et maintenant cela fonctionne. Donc, si la solution ci-dessus
@clover
ne fonctionne pas, essayez de redémarrer votre machine.la source