【问题标题】:SSL connection with CURL (PHP) working on Linux, same code fails on Windows与 CURL (PHP) 的 SSL 连接在 Linux 上运行,相同的代码在 Windows 上失败
【发布时间】:2013-04-24 12:00:31
【问题描述】:

我使用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 选项详细信息,或任何其他代码或信息。谢谢!

解决方案:

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

【问题讨论】:

  • 我在使用 nfephp-org 库时遇到了一些问题。我在基于 linux 的服务器上的解决方案是更改 ssl 协议: $nfe = new ToolsNFe(); $nfe->setSSLProtocol('SSLv3');

标签: php windows curl ssl nusoap


【解决方案1】:

要使用 SSL 连接,您必须在 php.ini

中启用 php_openssl.dll

当您使用 curl 时,一个常见问题是 openssl 模块默认使用错误的 SSL 版本。大多数情况下,您应该将 SSL 版本设置为 3。

curl_setopt($curl, CURLOPT_SSLVERSION,3); 

前几天我也遇到了同样的问题。

【讨论】:

  • 你太棒了。这完全做到了。也可以将其设置为 1。谢谢!
  • 干得好。对我来说就像一个魅力。
【解决方案2】:

如果您在基于 linux 的服务器上使用 nfephp-org lib,您可以使用该代码来更改 ssl 协议:

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

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

Se você estátentando usar o nfephp-org e está com esse erro em servidores linux,mude o protocolo ssl,como no código acima。

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多