Connexion SSL avec CURL (PHP) sous Linux, même code sous Windows

J’ai écrit un script qui utilise notre service WSDL de banques, en utilisant Nusoap . Les demandes sont signées avec certificate. Ce script fonctionne bien sur Ubuntu, Apache 2.2, PHP 5.4.

En essayant de réaliser la même chose sur Windows 7 (64-bit, Apache 2.2, PHP 5.4), j’ai cette erreur lancée par Curl:

**SSL read: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure, errno 0** 

J’ai désactivé le pare-feu et l’antivirus. Je peux fournir des détails sur l’option Curl, ou tout autre morceau de code ou d’informations. Je vous remercie!

SOLUTION:

curl_setopt ($ this-> ch, CURLOPT_SSLVERSION, 3);

Pour travailler avec une connexion SSL, vous devez activer le php_openssl.dll dans votre php_openssl.dll php.ini

Et lorsque vous travaillez avec curl, un problème courant est que le module openssl fonctionne avec une version SSL incorrecte par défaut. La plupart du temps, vous devez définir la version SSL sur 3.

 curl_setopt($curl, CURLOPT_SSLVERSION,3); 

J’ai eu le même problème avant quelques jours.

Si vous utilisez nfephp-org lib sur un serveur Linux, vous pouvez utiliser ce code pour le protocole change ssl:

 $nfe = new ToolsNFe(MY_CONFIG_PATH); $nfe->setSSLProtocol('SSLv3'); 

Lorsque MY_CONFIG_PATH est le chemin de votre fichier de configuration.

Vous êtes invité à utiliser des organisations Web et des serveurs Linux, vous pouvez utiliser protocole SSL, Como No Codo Acima.