2017-09-15 6 views
0

J'utilise le logiciel http://www.question2answer.org/ et le plug-in standard pour le captcha. J'ai essayé de mettre à jour le logiciel et après la mise à niveau je continue à obtenir cette erreur. Je n'ai aucune idée de comment résoudre ce problème. J'ai regardé autour de moi, mais rien n'est directement lié.L'opération SSL a échoué avec le code 1. Messages d'erreur OpenSSL:

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /qa/qa-plugin/recaptcha-captcha/recaptchalib.php on line 128

Warning: file_get_contents(): Failed to enable crypto in /qa/qa-plugin/recaptcha-captcha/recaptchalib.php on line 128

Warning: file_get_contents( https://www.google.com/recaptcha/api/siteverify?secret=abc6LcMwv8SAAAAAN9QOkIlVKRQZzHS3DeZ8ZLxwxxcdsd-cs&response=03AOmkcwJV_JkhxK8hGJTIVKEDcPrNH5Y0wLwndp7v20Ipqd4HMO21LWHSyPsLFsdfdsfsdsdfsdA6FZ1LiFJZpl6-CmppsTAWc8Qzft_RXLvlzunzQtZWNDp0Kw8T-drMvHiOZf909v4ScysiPmaMrxkq_SSlJaOE_Q6sdfsdfdsfdsh5X7xLqvoFDFbV16BJBTkJ5Pot5ZDwmSGZSD_0pygTdEzh8j-tGuSpZLSDVJmQ7Xq6HR70Dd2idtKz_gfcIAZQisdfsdfdsfJHH1LyY3FAG_x9zHemy3tXF6oE7rWuBZ8JoHehkWhYYChe-cBbdSX1ZqPioNNaSvkREbooI7esdfsdfd3JkynEKlqnUBl3t__qpDMu&remoteip=12.102.238.217&version=php_1.1.2): failed to open stream: operation failed in /qa/qa-plugin/recaptcha-captcha/recaptchalib.php on line 128

Je suis allé à la ligne 128 et c'est ce que je vois là. Je vois cette ligne "return file_get_contents(self::SITE_VERIFY_URL . $params->toQueryString());". J'ai plus de code autour de ces lignes pour votre information.

/** 
* Sends GET requests to the reCAPTCHA service. 
*/ 
class ReCaptchaGetRequestMethod implements ReCaptchaRequestMethod{ 

    const SITE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify?'; 

    /** 
    * Submit the request with the specified parameters. 
    * 
    * @param ReCaptchaRequestParameters $params Request parameters 
    * @return string Body of the reCAPTCHA response 
    */ 
    public function submit(ReCaptchaRequestParameters $params){ 
     return file_get_contents(self::SITE_VERIFY_URL . $params->toQueryString()); 
    } 
} 

Pouvez-vous s'il vous plaît aider? J'ai essayé quelques choses comme ajouter un certificat dans php.ini et cela n'a pas fonctionné. Tout fonctionnait bien, quand j'ai mis à jour, il a commencé à échouer. Toutes les inscriptions sont bloquées. S'il vous plaît aider.

Répondre

0

La solution à ce qui précède est d'utiliser la solution basée sur CURL où vous remplacez file_get_contents avec CURL. Voici le nouveau code modifié. J'ai capturé tout dans un step by step blog article avec des étapes pour tout le monde.

$url = self::SITE_VERIFY_URL . $params->toQueryString(); 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    $data = curl_exec($ch); 
    curl_close($ch); 
+0

Je ne sais pas si cette solution corect, votre message d'erreur indique « SSL3_GET_SERVER_CERTIFICATE: certificat verify a échoué », il semble que ce soit la même chose que ici https://stackoverflow.com/q/26148701/2360229 Ce que vous faites maintenant est: vous définissez CURLOPT_SSL_VERIFYPEER = false Vous pouvez également le faire avec file_get_contents(), voir https://stackoverflow.com/a/28701786/2360229 Donc, fondamentalement, vous dites simplement que la fonction ne doit pas vérifier le pair et c'est ainsi que vous corrigez l'erreur initiale, mais ne résolvez pas le problème. –