J'ai eu des erreurs avec Curl et certificat SSL
J'ai eu un problème. Lorsque vous envoyez une requête POST avec le CURL bibliothèque HTTPS obtiens l'erreur: certificat SSL problème, vérifiez que le CA cert est OK. Détails: erreur: 14090086: SSL routines: SSL3_GET_SERVER_CERTIFICATE: certificat de vérifier échoué. à l'aide de certificat actuel.
J'ai essayé plusieurs certificats DE http://www.startssl.com/certs/ et DE http://curl.haxx.se/docs/caextract.html
Dites-moi ce qui pourrait être la cause de l'erreur?
Voici le code de la requête POST:
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file);
curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file);
curl_setopt($process, CURLOPT_ENCODING , '');
curl_setopt($process, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($process, CURLOPT_TIMEOUT, 120);
curl_setopt($process, CURLOPT_PROXY,$this->proxy);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process,CURLOPT_VERBOSE,1);
if($ssl){
curl_setopt ($process, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($process, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($process ,CURLOPT_CAINFO, YiiBase::getPathOfAlias('webroot').'/files/GTECyberTrustGlobalRoot.crt');
}
curl_setopt ($process, CURLOPT_HTTPHEADER, array('Expect:'));
$return = curl_exec($process);
$this->error_code = curl_getinfo($process, CURLINFO_HTTP_CODE);
avez-vous essayé avec un certificat auto-signé ?
Selon cet article : unitstep.net/blog/2009/05/05/... vous faites trop d'action lorsque SSL est activé. Si vous définissez la
oui, suis allé sur le site via un navigateur internet, où j'ai essayé d'envoyer des demandes via le navigateur de stocker le certificat et l'a utilisé lors d'une requête, le même résultat
En outre,
curl_setopt ($process, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt ($process, CURLOPT_SSL_VERIFYHOST, 2); ne fonctionne toujours pas
Selon cet article : unitstep.net/blog/2009/05/05/... vous faites trop d'action lorsque SSL est activé. Si vous définissez la
CURLOPT_SSL_VERIFYPEER
à false, il n'est pas nécessaire de définir le CURLOPT_CAINFO
et la CURLOPT_SSL_VERIFYHOST
oui, suis allé sur le site via un navigateur internet, où j'ai essayé d'envoyer des demandes via le navigateur de stocker le certificat et l'a utilisé lors d'une requête, le même résultat
En outre,
CURLOPT_SSL_VERIFYHOST
semble prendre un entier (0, 1, 2) et pas un booléen.curl_setopt ($process, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt ($process, CURLOPT_SSL_VERIFYHOST, 2); ne fonctionne toujours pas
OriginalL'auteur Alex Alexandrov | 2013-03-04
Vous devez vous connecter pour publier un commentaire.
Ici est un exemple. Vous devriez jeter un oeil à une de vos options (réduire le nombre d'option pour le test) et il suffit de régler le
CURLOPT_SSL_VERIFYPEER
à false pour désactiver le CA de vérifier.vérifier ICI
merci pour vos suggestions et vos conseils, je vais vous avouer que la négligence et de ce fait était une erreur.
Je comprends parfaitement, mais dans l'intérêt de résoudre la question s'il vous plaît trouver de la poste/la boucle de rétroaction
Très mauvais conseils; voir La plupart de code dangereux dans le monde: la validation des certificats SSL non logiciel de navigation. Au lieu de désactiver la vérification du certificat, vous devez expliquer comment faire la connexion avec
GTECyberTrustGlobalRoot.crt
que l'OP est en train de faire.OriginalL'auteur MatRt