簡體   English   中英

與在Linux上工作的CURL(PHP)的SSL連接,在Windows上相同的代碼失敗

[英]SSL connection with CURL (PHP) working on Linux, same code fails on Windows

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

要使用SSL連接,您必須在php.ini中啟用php_openssl.dll

當你使用curl時,常見的問題是openssl模塊默認使用錯誤的SSL版本。 大多數情況下,您應將SSL版本設置為3。

curl_setopt($curl, CURLOPT_SSLVERSION,3); 

幾天前我遇到了同樣的問題。

如果您在基於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ódigoacima。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM