与在Linux上工作的CURL(PHP)的SSL连接,在Windows上相同的代码失败

时间:2013-04-24 12:00:32

标签: php windows curl ssl nusoap

我使用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);

2 个答案:

答案 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。