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 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