與cURL 的HTTPS 連線錯誤:解析0 長度內容
使用cURL 建立安全HTTPS 連線時,使用者可能會遇到持續錯誤,其中傳回的內容長度為零。這個問題可能特別令人沮喪,尤其是在使用 cURL 進行支付網關整合時。
問題原因
此錯誤的根本原因通常在於證書驗證過程。 cURL 依賴預先打包的憑證授權單位 (CA) 憑證來驗證 HTTPS 連線。但是,隨著時間的推移,這些憑證可能會過時,從而導致連線失敗。
解
要解決此問題,必須將過時的 CA證書替換為更新版本.
1.手動更換
a.訪問http://curl.haxx.se/ca/cacert.pem並下載最新的CA證書文件(cacert.pem)。
b.將檔案儲存到伺服器上適當的目錄。
c.在您的 cURL 請求中,新增以下行:
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
這將指示 cURL 使用更新的 CA 憑證檔案進行連線驗證。
2. PHP.ini 設定
a.開啟您的 php.ini 檔案。
b。新增以下行:
curl.cainfo=/etc/ssl/certs/ca-certificates.crt
這會將 PHP 配置為自動對所有 cURL 連線使用系統受信任的 CA 憑證儲存。
3. Composer 套件
要獲得更強大的解決方案,請考慮使用 Composer 套件 paragonie/certainty。此軟體包提供了一種管理 CA 憑證並確保其有效性的便捷方法。
其他提示
以上是為什麼我的 cURL HTTPS 連線返回 0 長度內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!