首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP cURL 存取 HTTPS API 忽略憑證驗證完整代碼

     編輯:PHP 綜合知識

cURL 存取 HTTPS 時預設驗證憑證,若伺服器憑證自簽或不受信任會失敗。解決方法是關閉對等驗證。

關鍵選項

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過憑證驗證
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 檢查加密演算法是否存在

完整函式

<?php
function curl_https($url, $header=array(), $timeout=30){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, '');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    $response = curl_exec($ch);
    if($error=curl_error($ch)) die($error);
    curl_close($ch);
    return $response;
}
// 使用
$url = 'https://www.example.com/api/message.php';
$header = array('content-type:application/json');
echo curl_https($url, $header, 5);
?>

安全提醒

  • 生產環境建議下載正規 CA 憑證並指定 CURLOPT_CAINFO,而非關閉驗證。
  • 僅在測試或受信任內網環境使用 VERIFYPEER=false。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved