curl --cert
和 curl --cacert
讀寫哪些 HTTP 請求和響應標頭?
來自https://curl.haxx.se/docs/httpscripting.html
在 HTTPS 世界中,您使用證書來驗證您是您聲稱的人,作為普通密碼的補充。Curl 支持客戶端證書。所有證書都使用密碼鎖定,您需要輸入密碼才能讓 curl 使用證書。密碼片語可以在命令行中指定,如果沒有,則在 curl 查詢時以互動方式輸入。在 HTTPS 伺服器上使用帶有 curl 的證書,例如:
curl --cert mycert.pem https://secure.example.com
curl 還嘗試通過根據本地儲存的 CA 證書包驗證伺服器的證書來驗證伺服器是否是它聲稱的身份。驗證失敗將導致 curl 拒絕連接。然後,您必須使用 –insecure (-k),以防您想告訴 curl 忽略無法驗證伺服器。有關伺服器證書驗證和 ca 證書捆綁的更多資訊,請參閱 SSLCERTS 文件,可在此處線上獲取: https ://curl.haxx.se/docs/sslcerts.html
有時你可能會得到你自己的 CA 證書儲存,然後你可以告訴 curl 使用它來驗證伺服器的證書:
curl --cacert ca-bundle.pem https://example.com/
HTTP 請求和響應標頭做什麼
curl --cert
以及curl --cacert
讀寫?謝謝。
請注意,TLS獨立於 HTTP。其他協議可以通過 TLS 傳遞(例如 LDAP、SMTP、NNTP,…)。基本上,TLS 對數據通道進行“低級加密”,然後你可以通過它傳遞任何東西。
使用 HTTPS,HTTP 流量分層在 TLS 之上。與 HTTP 相比,在 TLS 層(TLS 版本;密碼協商;證書驗證;SNI)發生的事情是“低級”的,對 HTTP 層不可見。
Telling
curl
to use--cacert
and--cert
will 告訴程序向伺服器發送客戶端證書,該證書在 TLS 層進行處理,對 HTTP 層不可見。Web 伺服器可能會將客戶端的 CN 暴露給 CGI 程序,或者將其暴露給身份驗證模組,但這一切都是在 HTTP 請求之外完成的。