curl 獲取 https 請求方法

2021-08-21 02:50:24 字數 1732 閱讀 1064

使用curl如果想發起的https請求正常的話有2種做法:

方法一:設定為不驗證證書和host

**示例:

$url = '';

$curl = curl_init();

curl_setopt($curl, curlopt_url, $url);

curl_setopt($curl, curlopt_header, 1);

curl_setopt($curl, curlopt_returntransfer, 1);

curl_setopt($curl, curlopt_ssl_verifypeer, false);//這個是重點。

$data = curl_exec($curl);

curl_close($curl);

var_dump($data);

當請求https的資料時,會要求證書,這時候,加上下面這兩個引數,規避ssl的證書檢查

curl_setopt($ch, curlopt_ssl_verifypeer, false); // https請求 不驗證證書和hosts

curl_setopt($ch, curlopt_ssl_verifyhost, false);

方法二:設定乙個正確的證書

提交資料到https時,需要pem證書來加密。

我們使用瀏覽器訪問https的時候,瀏覽器會自動載入**的安全證書進行加密。但是你用curl請求https時,沒有通過瀏覽器,就只有自己手動增加乙個安全證書進行加密。

**示例:

$curl = curl_init();

curl_setopt($curl, curlopt_returntransfer, true);

curl_setopt($curl, curlopt_timeout, 500);

curl_setopt($curl, curlopt_ssl_verifypeer, true);

curl_setopt($curl, curlopt_ssl_verifyhost, true);

curl_setopt($curl, curlopt_url, $url);

$res = curl_exec($curl);

curl_close($curl);

return

$res;

知識點摘要:

curlopt_ssl_verifypeer 設定為false 禁止 curl 驗證對等證書(peer』s certificate)。要驗證的交換證書可以在 curlopt_cainfo 選項中設定,或在 curlopt_capath中設定證書目錄。

curlopt_cainfo 乙個儲存著1個或多個用來讓服務端驗證的證書的檔名。這個引數僅僅在和curlopt_ssl_verifypeer一起使用時才有意義。可能需要絕對路徑。

curlopt_capath 乙個儲存著多個ca證書的目錄。這個選項是和curlopt_ssl_verifypeer一起使用的。

curlopt_ssl_verifyhost 設定為 1 是檢查伺服器ssl證書中是否存在乙個公用名(common name)。譯者注:公用名(common name)一般來講就是填寫你將要申請ssl證書的網域名稱 (domain)或子網域名稱(sub domain)。 設定成 2,會檢查公用名是否存在,並且是否與提供的主機名匹配。 在生產環境中,這個值應該是 2(預設值)。

用curl發起https請求

使用curl發起https請求 使用curl如果想發起的https請求正常的話有2種做法 方法一 設定為不驗證證書和host。在執行curl exec 之前。設定option ch curl init curl setopt ch,curlopt ssl verifypeer,false curl ...

curl請求方法

模擬提交引數,支援https提交 可用於各類api請求 param array data post陣列 param string method post get,預設get方式 curl setopt curl,curlopt timeout,30 設定超時限制防止死迴圈 curl setopt c...

http 使用curl發起https請求

今天乙個同事反映,使用curl發起https請求的時候報錯 ssl certificate problem,verify that the ca cert is ok.details error 14090086 ssl routines ssl3 get server certificate ce...