Ssl

將自簽名證書添加到“受信任列表”

  • June 10, 2021

我已經為我的建構伺服器生成了一個自簽名證書,並且我希望全域信任我機器上的證書,因為我自己創建了密鑰並且我厭倦了看到警告。

我在 Ubuntu 12.04 上。如何獲取證書並在全球範圍內信任它,以便瀏覽器(Google Chrome)、CLI 實用程序(wget、curl)和程式語言(Python、Java 等)無需詢問即可信任與https://mysite.com的連接問題?

對此的簡單回答是,幾乎每個應用程序都會以不同的方式處理它。

此外,OpenSSL 和 GNUTLS(用於處理簽名證書的最廣泛使用的證書處理庫)在處理證書時表現不同,這也使問題複雜化。作業系統也利用不同的機制來利用大多數網站使用的“根 CA”。

除此之外,以 Debian 為例。安裝ca-certificates包:

apt-get install ca-certificates

然後,您將不受信任的 CA 證書的公共部分(用於簽署 CSR 的證書)複製到 CA 證書目錄(以 root 身份):

cp cacert.crt /usr/share/ca-certificates

*注意:*證書需要有.crt擴展才能被提取。

並讓它重建包含您的證書的目錄,以root身份執行:

dpkg-reconfigure ca-certificates

並選擇ask選項,滾動到您的證書,將其標記為包含並選擇確定。

大多數瀏覽器都使用自己的 CA 數據庫,因此certutil必須使用諸如此類的工具來修改其內容(在軟體包提供的 Debian 上libnss3-tools)。例如,使用 Chrome,您可以執行以下內容:

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file

Firefox 將允許您瀏覽到磁碟上的證書,將其辨識為證書文件,然後允許您將其導入根 CA 列表。

大多數其他命令,例如curl可用於指向 CA 的命令行開關,

curl --cacert  /path/to/CA/cert.file https://...

或完全放棄 SSL 驗證

curl --insecure https://...

ca-certificates如果類似的技巧不能針對該特定應用程序對其進行排序,則其餘部分將需要單獨調查。

引用自:https://unix.stackexchange.com/questions/90450