簡體   English   中英

php cURL錯誤:錯誤:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警報握手失敗

[英]Php cURL error:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

**不幸的是,我已經搜索過stackoverflow以及其他資源,即使我嘗試了所有方法,也沒有完美的解決方案來解決此問題,所以我的請求是幫助代碼中不共享任何鏈接**

我在Windows 7上使用ZeroXIII-13.3.2,這是我的php Curl函數,用於下載網頁

function gdllssl3($target_url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36');
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_CAINFO, "D:\cacert-2019-05-15.pem");
curl_setopt($ch, CURLOPT_SSLVERSION,4);
curl_setopt($ch, CURLOPT_TIMEOUT,10);
$html= curl_exec($ch);
if (!$html) {
        echo "<br />cURL error number:" .curl_errno($ch);
        echo "<br />cURL error:" . curl_error($ch);
}
return $html;
}


echo $url=gdllssl3('https://www.ratemyagent.com.au/real-estate-profile/sales/new-south-wales/agents');

它返回我這個錯誤

cURL錯誤號:35 cURL錯誤:錯誤:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警報握手失敗

使用從Mozilla提取的最新CA證書

似乎您正在嘗試連接到支持TLS v1.1和TLS v1.2而不是TLS v1.0的遠程服務器

您可以嘗試更改此行:

curl_setopt($ch, CURLOPT_SSLVERSION, 4);

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1);

CURLOPT_SSLVERSION 4 (CURL_SSLVERSION_TLSv1_0)表示TLS v1.0,而5 (CURL_SSLVERSION_TLSv1_1)表示TLS v1.1

有關信息,現在不建議使用TLS v1.0,並且出於安全原因必須避免使用。 https://blog.pcisecuritystandards.org/are-you-ready-for-30-june-2018-sayin-goodbye-to-ssl-early-tls

最終,正如Patrick Mevzek在下面的評論中提到的那樣,您最好完全刪除該行,以便curl模塊選擇最佳支持的協議,如文檔( PHP cURL )中所述

暫無
暫無

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

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