TLS 1.2 ne fonctionne pas dans cURL

J'ai de la difficulté curling une url HTTPS qui utilise TLS1.2, dans mon curl opération je poste mes données de connexion sur le site web et le sauver dans cookiefile.
Le message d'erreur que j'obtiens est-ce

 error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

J'ai essayé de réglage VERIFYPEER et VERIFYHOST à 0 mais cela ne semble pas fonctionner, des suggestions?

Voici les versions que je suis en utilisant:

  • OpenSSL version 0.9.8 b
  • CURL version est 7.24.0
  • PHP 5.3

Voici le code:

$setuplogin = curl_init(); 
curl_setopt ($setuploginurl, CURLOPT_URL, $url); 
curl_setopt ($setuploginurl, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt ($setuploginurl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt ($setuploginurl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt ($setuploginurl, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_TLSv1_2');
curl_setopt ($setuploginurl, CURLOPT_POSTFIELDS, 'username=uname&password=pword&act=login&submit=Login');
curl_setopt ($setuploginurl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"); 
curl_setopt (setuploginurl, CURLOPT_TIMEOUT, 60); 
curl_setopt ($setuploginurl, CURLOPT_COOKIESESSION, TRUE); 
curl_setopt ($setuploginurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($setuploginurl,  CURLOPT_HEADER, 1);
curl_setopt ($setuploginurl,CURLOPT_ENCODING,"gzip");
curl_setopt ($setuploginurl, CURLOPT_POST, true);
curl_setopt ($setuploginurl, CURLOPT_COOKIEJAR, 'cookies.txt'); 
curl_setopt ($setuploginurl, CURLOPT_FRESH_CONNECT , 1);

$loginp= curl_exec($setuploginurl); 
if ($loginp === FALSE) {
    die(curl_error($setuploginurl));
}

curl_close ($setuploginurl); 
var_dump ($loginp);
  • Vous devez utiliser 2 pour CURLOPT_SSL_VERIFYHOST, pas 1.
  • Je ne sais pas si c'est automatique, mais le passage à PHP v 5.6.33 résolu mon problème.
InformationsquelleAutor Sam Ash | 2015-05-09