我使用Nusoap编写了一个使用银行WSDL服务的脚本。请求与证书签名。这个脚本在Ubuntu,Apache 2.2,PHP 5.4上运行良好。
当尝试在Windows 7(64位,Apache 2.2,PHP 5.4)上实现相同的功能时,我得到了Curl抛出的这个错误:
**SSL read: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure, errno 0**
我已禁用防火墙和防病毒软件。我可以提供Curl选项详细信息,或任何其他代码或信息。谢谢!
SOLUTION:
curl_setopt($ this-> ch,CURLOPT_SSLVERSION,3);
答案 0 :(得分:3)
要使用SSL连接,您必须在 php.ini
中启用php_openssl.dll
当您使用curl时,常见的问题是openssl模块默认使用错误的SSL版本。大多数情况下,您应将SSL版本设置为3。
curl_setopt($curl, CURLOPT_SSLVERSION,3);
几天前我遇到了同样的问题。
答案 1 :(得分:0)
如果您在基于Linux的服务器上使用nfephp-org lib,则可以使用该代码来更改ssl协议:
$nfe = new ToolsNFe(MY_CONFIG_PATH);
$nfe->setSSLProtocol('SSLv3');
当MY_CONFIG_PATH是配置文件的路径时。
Sevocêestátentando usar o nfephp-orgeestácomesse erro em servidores linux,mude o protocolo ssl,comonocódigacima。