」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何解決 PHP 中 file_get_contents() 的 SSL 逾時和加密啟用錯誤?

如何解決 PHP 中 file_get_contents() 的 SSL 逾時和加密啟用錯誤?

發佈於2024-11-08
瀏覽:151

How to Resolve SSL Timeout and Crypto Enabling Errors in PHP for file_get_contents()?

解決了file_get_contents() 的SSL 逾時和加密啟用錯誤

在PHP 中,當使用file_get_contents() 從HTTPS 頁面檢索內容時,可能會遇到與SSL 加密啟用相關的錯誤。此類錯誤之一是:

Warning: file_get_contents(): SSL: crypto enabling timeout...
Warning: file_get_contents(): Failed to enable crypto...

當 PHP 設定缺少為 SSL 連線啟用加密的必要設定時,就會出現此問題。為了修正這個問題,提出了以下解決方案:

將cURL 與SSLv3 結合使用

可以使用cURL 函式庫取代file_get_contents(),它可以更好地控制SSL 設定。將 CURLOPT_SSLVERSION 選項設為 3,將啟用 SSLv3,可能會解決問題:

設定 cURL 進行 SSL 驗證

在某些情況下,問題也可能源自於根憑證缺失或不完整。為了確保正確的 SSL 驗證,建議執行以下步驟:

  1. 下載根憑證。
  2. 使用CURLOPT_CAINFO 指定證書文件的路徑:
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
  1. 使用CURLOPT_SSL_VERIFYPEER 啟用SSL 驗證:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

透過實作這些解決方案,您可以解決相關的SSL 逾時和加密啟用錯誤使用PHP中的file_get_contents(),可讓您從HTTPS 頁面檢索內容,而無需進一步複雜化。

版本聲明 本文轉載於:1729647078如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3