Ssl-Certificate

帶有自定義證書的捲曲

  • November 12, 2014

我希望 curl 與 goDaddy 簽名的網站一起工作:如果我打電話

curl mypage.com/bla

我收到證書驗證錯誤。我嘗試使用此程式碼段獲取 ca 證書:

echo | openssl s_client -connect mysite.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cert.pem

然後打電話

curl mypage.com/bla --cacert cert.pem

這也導致了驗證錯誤。我檢查了證書日期和主題,一切似乎都很好?

我錯過了什麼?我可能需要整個鏈條嗎?如果是,是否有命令可以全部獲取?

cacert 中的 CA 表示證書頒發機構。您應該指定簽署您的證書的機構的證書或證書路徑,而不是您的證書本身

命令

openssl x509 -in YourSitePemCert -text

應該列出一個發行人行。您應該獲得頒發者證書並將其包含在 cacert pem 文件中

(在您的情況下搜尋 Godaddy 證書鏈會導致https://certs.godaddy.com/repository

根據文件:

curl 預設使用證書頒發機構 (CA) 公鑰(CA 證書)的“捆綁”執行 SSL 證書驗證。如果預設捆綁文件不夠用,您可以使用該--cacert選項指定備用文件。

如果此HTTPS伺服器使用捆綁包中表示的****CA簽名的證書,則證書驗證可能由於證書問題而失敗(證書可能已過期,或者名稱可能與 URL 中的域名不匹配)。如果您想關閉 curl 對證書的驗證,請使用該-k (or --insecure)選項。

對於 goDaddy,您必須使用SSL 證書和 CA Bundle ( gd_bundle.crt)。您可以從https://certs.godaddy.com/repository/gd_bundle.crt下載

例如。

curl https://mysite.com --cacert gd_bundle.crt

引用自:https://serverfault.com/questions/643758