首頁  >  文章  >  後端開發  >  如何解決 cURL 中的「SSL/TLS 握手中出現問題」錯誤?

如何解決 cURL 中的「SSL/TLS 握手中出現問題」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-11-01 13:45:02936瀏覽

How to Solve

解決cURL 中的SSL/TLS 握手錯誤

使用cURL 使用SSL/TLS 協定建立安全連線時,您可能會遇到以下錯誤訊息「SSL/TLS 握手中的某處出現問題。」這表示cURL和遠端伺服器之間的身份驗證和加密過程中出現問題。

儘管嘗試了常見的解決方案,例如停用 SSL 驗證 (CURLOPT_SSL_VERIFYPEER) 和設定 CA 憑證 (CURLOPT_CAINFO),但問題仍然存在。

解決方案:

這個問題的根本原因在於cURL缺少內建根證書。大多數現代瀏覽器都包含根證書,但 cURL 需要名為「cacert.pem」的受信任憑證授權單位 (CA) 檔案的明確路徑。

要解決此問題,請依照下列步驟操作:

  1. 從cURL官網下載cacert.pem檔案:https://curl.haxx.se/docs/caextract.html
  2. 將CURLOPT_CAINFO選項設定為下載的cacert.pem檔案的路徑:
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/file/cacert.pem');

此CA 檔案包含受信任的根證書,允許cURL 在SSL/TLS 握手期間驗證伺服器的憑證。如果沒有此文件,驗證過程將失敗,從而導致握手錯誤訊息。

完成這些步驟後,您應該可以使用 cURL 建立安全的 HTTPS 連線。

以上是如何解決 cURL 中的「SSL/TLS 握手中出現問題」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn