『壹』 curl怎麼解決https證書問題
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
跳過SSL
『貳』 curl 判斷ssl證書有么 shell
若服務端要求客戶端認證,需要將pfx證書轉換成pem格式
openssl pkcs12 -clcerts -nokeys -in cert.pfx -out client.pem #客戶端個人證書的公鑰
openssl pkcs12 -nocerts -nodes -in cert.pfx -out key.pem #客戶端個人證書的私鑰
也可以轉換為公鑰與私鑰合二為一的文件
openssl pkcs12 -in cert.pfx -out all.pem -nodes #客戶端公鑰與私鑰,一起存在all.pem中
執行curl命令
1、使用client.pem+key.pem
curl -k --cert client.pem --key key.pem https://www.xxxx.com
2、使用all.pem
curl -k --cert all.pem https://www.xxxx.com
使用-k,是不對伺服器的證書進行檢查,這樣就不必關心伺服器證書的導出問題了。
『叄』 本人linux小白,請問下curl命令跟https怎麼跳過認證,,如下圖,十分感謝!!!
curl -k加這個參數忽略證書
『肆』 如何解決curl https 返回 ssl connect error
首先進入Linux操作系統,打開終端;輸入nss更新命令:yum update nss 然後按回車鍵;
2
輸入:y,按回車鍵;
3
下載更新完成!
4
最後輸入:/etc/init.d/php-fpm restart 命令;重啟php-fpm。
『伍』 curl https 請求
在回調地址的頁面上用session或其它方式保存url,在curl頁就可以調用了
『陸』 php curl https證書 怎麼生成
curl不需要證書啊
你可以直接找個成熟的http類庫,或者直接找php採集~會有很多答案的
『柒』 如何使用curl 訪問https類型的網站
可以。 CURLOPT_PROTOCOLS CURLPROTO_* 的位域指。如果被啟用,位域值會限定libcurl在傳輸過程中有哪些可使用的協議。這將允許你在編譯libcurl時支持眾多協議,但是限制只是用它們中被允許使用的一個子集。默認libcurl將會使用全部它支持的協議
『捌』 求助啊,curl https請求的問題
解決方法為在curl請求時,加入:
復制代碼代碼如下:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 從證書中檢查SSL加密演算法是否存在
curl https請求代碼
復制代碼代碼如下:
<?php
/** curl 獲取 https 請求
* @param String $url 請求的url
* @param Array $data 要發送的數據
* @param Array $header 請求時發送的header
* @param int $timeout 超時時間,默認30s
*/
function curl_https($url, $data=array(), $header=array(), $timeout=30){
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 從證書中檢查SSL加密演算法是否存在
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
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 = '';
$data = array('name'=>'fdipzone');
$header = array();
$response = curl_https($url, $data, $header, 5);
echo $response;
?>
希望本文所述對大家的php程序設計有所幫助。
『玖』 如何使libcurl支持https
extern"C"__declspec(dllexport)int__cdeclhttps_post(constchar*strUrl,char*szPost,constchar*pCaPath)
{
CURL*curl;
CURLcoderes;
res_buf="";
curl=curl_easy_init();//初始化
if(curl&&strUrl)
{
curl_easy_setopt(curl,CURLOPT_URL,strUrl);//設置url地址
if(szPost)
{
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,szPost);//設置post參數
}
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_func);//設置回調函數
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&res_buf);//設置寫數據
if(NULL==pCaPath)
{
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,false);//設定為不驗證證書和HOST
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYHOST,false);
}
else
{
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,true);
curl_easy_setopt(curl,CURLOPT_CAINFO,pCaPath);
}
res=curl_easy_perform(curl);//執行
if(res==CURLE_OK)
{
if(m_json)
{
deletem_json;
m_json=NULL;
}
m_json=newchar[strlen(res_buf.c_str())+1];
strcpy(m_json,Utf8toAnsi(res_buf.c_str()));;
curl_easy_cleanup(curl);
return1;
}
return-1;
}
return-1;
}