首頁 >後端開發 >php教程 >為什麼我的 cURL HTTPS 連線返回空內容,如何修復?

為什麼我的 cURL HTTPS 連線返回空內容,如何修復?

Barbara Streisand
Barbara Streisand原創
2024-11-17 18:02:02199瀏覽

Why Does My cURL HTTPS Connection Return Empty Content, and How Can I Fix It?

HTTPS 連接失敗的問題及其解決方法

在使用cURL 連接到HTTPS 網站時,遇到了一個常見問題:cURL 僅傳回0 長度的內容,只有在將cURL 設定為回傳標頭後才有效。這個問題很可能是由於 HTTPS 連線引起的。

這個問題的解決方法是更新 cURL 附帶的用於驗證 HTTPS 憑證的驗證檔案的版本。可以從 http://curl.haxx.se/ca/cacert.pem 下載最新的身份驗證檔。將其保存到網站上的某個目錄中,然後在每次請求中添加:

curl_setopt ($curl_ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem"); 

需要注意的是,在解決方案中不要禁用CURLOPT_VERIFYPEER 和CURLOPT_VERIFYHOST,因為這會降低程式碼的安全性。

一個更好的解決方法是使用Jasen 提出的方法,如下所示:

在php.ini 中加入:

curl.cainfo=/etc/ssl/certs/ca-certificates.crt

此外,還可以使用composer 套件Paragonie/Certainty 來管理CA 證書,從而避免因撤銷證書而導致cacert.pem 過期帶來的安全漏洞。

以上是為什麼我的 cURL HTTPS 連線返回空內容,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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