2013-04-24 43 views
4

我编写了一个脚本,使用我们的银行WSDL服务,使用Nusoap。请求用证书签名。这个脚本在Ubuntu,Apache 2.2,PHP 5.4上工作正常。在Linux上使用CURL(PHP)的SSL连接,在Windows上使用相同的代码失败

当试图实现在Windows 7(64位,阿帕奇2.2,PHP 5.4)同样的事情,我得到这个错误被抛出卷曲:

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

我有禁用防火墙和防病毒。我可以提供Curl选项的详细信息,或任何其他代码或信息。谢谢!

SOLUTION:

curl_setopt($这 - > CH,CURLOPT_SSLVERSION,3);

+0

我有使用nfephp-org lib的一些问题。我在基于Linux的服务器上的解决方案是更改ssl协议:$ nfe = new ToolsNFe(); $ nfe-> setSSLProtocol( '的SSLv3'); – 2016-01-29 12:47:43

回答

3

要与您必须启用php_openssl.dll的php.ini

而一个SSL连接时,卷曲工作中常见的问题是一个错误的SSL版本默认OpenSSL的模块工作。大多数时候您应该将SSL版本设置为3.

curl_setopt($curl, CURLOPT_SSLVERSION,3); 

我在几天之前有同样的问题。

+0

你真棒。这完全做到了。也可以将它设置为1.谢谢! – emanuelv 2013-04-24 13:52:18

+0

干得不错。对我来说就像一个魅力。 – 2016-01-29 12:46:40

0

如果您使用的是基于Linux的服务器上nfephp-组织lib中你可以使用变更SSL协议的代码:

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

当MY_CONFIG_PATH是你的配置文件的路径。

本网站的使用仅供学习和交流用途,不代表任何个人的索取。

相关问题