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

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

Barbara Streisand
發布: 2024-11-17 18:02:02
原創
248 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板