2013-04-24 31 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是你的配置文件的路徑。

本網站的使用僅供學習和交流用途,不代表任何個人的索取。

相關問題