現在為了安全訪問,很多**都是https鏈結,因此研究了下curl對於https的支援,小結如下
(1)編譯libcurl支援ssl
./configure --prefix=/usr/local/ssl/ --with-ssl;
編譯安裝完成後,驗證編譯好的二進位制檔案是否已經支援https協議./curl -v
(2) libcurl訪問有關api
(i)單向
認證——其實只需要
libcurl
編譯支援
ssl,其他可以關閉校驗
curl_easy_setopt(curl, curlopt_ssl_verifypeer,1l)——校驗本地證書,如果不提供,會無法訪問ssl站點,設為0l不校驗
curl_easy_setopt(curl, curlopt_ssl_verifyhost, 1l)—— 校驗伺服器證書,如果過期,或者有其他問題,也不訪問,設為0l不校驗
curl_easy_setopt(curl *handle, curlopt_capath, char *path——指定ca根證書路徑
curl_easy_setopt(curl *handle, curlopt_cainfo, char *path) ——指定ca根證書名稱
注:所謂ca根證書,相當於ca認證機構下發的公鑰,用來驗證伺服器發來的公鑰證書中的資訊是否是偽造的
(ii)雙向
認證——做雙向認證,則
客戶端也需要擁有公鑰
/私鑰的證書,因此
在curl
的set options
中需要指定其路徑
curl_easy_setopt(curl *handle,
curlopt_sslcert,char*cert)——指定公鑰證書路徑
curl_easy_setopt(curl *handle,curlopt_sslcerttype,char*type)——指定公鑰證書格式型別
curl_easy_setopt(curl *handle, curlopt_sslkey,char *keyfile)——指定私鑰證書路徑
curl_easy_setopt(curl *handle,curlopt_sslkeytype,char *type)——指定私鑰證書格式型別
curl_easy_setopt(curl *handle,curlopt_keypasswd,char *pwd)——指定私鑰密碼
注:如果伺服器端不需要對客戶端身份進行校驗,則客戶端不需要指定本地證書,換言之,如果服務端需要驗證使用者合法與否,則客戶端必須enable本地證書。
git 使用筆記二
通過最近git的學習以使用,感覺是越來越順手了,也更深入了 git有四種原子物件 1塊 blob 內容 2目錄樹 tree 關係 3提交 commit 4標籤 tag 物件id為sha1雜湊,表示為40位的16進製制數,具有全域性唯一標識 例 git hash object file name 生成...
Mac使用筆記(二)
前一篇mac使用筆記 談論了一些我使用mac os x的心得,但內容太少,隨著我進一步使用,我發現了更多有趣和有用的功能,所以有了這個第二篇,文章介紹的不完全是使用的技巧,有些是對系統的機制的說明,有些則是對mac os x的設計理念的評述。18,瀏覽器safari的前進和後退 前進,兩個手指向左划...
GDB學習使用筆記
首先說明我使用的gdb版本及作業系統版本資訊如下 gdb是gnu 的原始碼偵錯程式。fred fish,原真主保佑他,關於他的生平可以在了解一下。這裡有gdb最新版的文件,可以參考!gdb簡介 偵錯程式 比如象gdb 能讓你觀察另乙個程式在執行時的內部活動,或程式出錯時發生了什麼。gdb主要能為你做...