簡體   English   中英

curl無法通過--cacert通過Firefox在導出的站點證書中驗證證書

[英]curl doesn't verify a certificate with exported site's certificate in Firefox passed by --cacert

我不是SSL方面的專家,如果我不正確地使用一些與SSL相關的術語,請原諒。 出於某些原因,我無法通過curl下載帶有https的帶有--cacert選項的站點證書。

我有一個可通過https訪問的Intranet網站。 接受不受信任(或自簽名)的SSL證書后,可以在Firefox中打開此站點。 我從Firefox導出了該站點的證書到文件中。 我已經從/ etc / pki / tls / certs中刪除了所有證書,因此curl無法在--cacert選項提供的文件中找到證書。

當我使用--cacert選項運行curl指定證書文件時,它失敗:

curl -v https://some-intranet-site.com/repodata/repomd.xml --cacert exported_certificate.cer

* Peer certificate cannot be authenticated with known CA certificates
curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html

當我導出Google的證書並嘗試使用curl訪問https://gogole.com時 ,它可以工作:

curl https://google.com --cacert ~/dev/tmp/google.cert 
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>

你能解釋一下嗎?

謝謝。

使用自簽名證書可能不太好,因為會收到警告。

無論如何,您應確保服務器證書的CN包含服務器的DNS名稱。 另外,請確保exported_certificate.cer為PEM格式。 我的猜測是您的格式為DER。 如果是PEM格式,則可以在常規文本編輯器中讀取它,如果DER是二進制的。

最后,如果您不想驗證服務器證書,則可以使用“ -k”使用curl跳過此步驟。 因此,在您的情況下,“ curl -k -v https://some-intranet-site.com/repodata/repomd.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM