在系統範圍內接受自簽名證書,無需安裝為根 CA

在系統範圍內接受自簽名證書,無需安裝為根 CA

對於 Intranet 伺服器,我使用自簽名證書,我希望在系統範圍內信任該證書。我為 Firefox 新增了憑證例外,但這在 Chrome、控制台應用程式、IDE 等中是不可能的。

這就是為什麼我希望證書在系統範圍內受到信任。據我了解,建議的方法是將其安裝為根CA:https://blogs.technet.microsoft.com/sbs/2008/05/08/installing-a-self-signed-certificate-as-a-trusted-root-ca-in-windows-vista/

據我所知,這意味著控制自簽名證書的人現在控制一個根頒發機構,該機構可以為偽造的證書簽名任何我的機器上的網站。這是真的嗎?我只想擁有一個自簽署的 Intranet 伺服器,而不是我使用的所有服務。

這裡推薦的處理 Intranet TLS 的方法是什麼?

答案1

如果伺服器在您的控制之下:

  1. 創建一個實際的根 CA(例如,具有 easy-rsa 或 Xca 或 Windows Server CA 角色)。
  2. 將自簽名伺服器憑證替換為您的自訂 CA 所頒發的憑證。
  3. 確保您剛剛頒發的憑證實際上被標記為“葉”/“最終實體”憑證。尋找“X.509v3 Basic Constraints”擴充功能 - 它必須存在並顯示“CA:FALSE”。
  4. 將自訂 CA 的根憑證安裝到您的電腦中。
  5. 安全地儲存 CA 私鑰,以便僅在您需要頒發新憑證時才能存取它。

由於伺服器的憑證包含“基本約束:CA:FALSE”,因此它將無法僅使用自己的金鑰頒發新憑證。

(之所以需要將CA分開,是因為直接將伺服器的自簽名憑證安裝到「受信任的CA」資料夾中可能會導致系統忽略基本約束——畢竟它是作為權威機構安裝的。分離可以避免這個問題,因為您可以保護根 CA 金鑰。

作為獎勵功能,當伺服器憑證過期或名稱變更時,您無需重新信任伺服器憑證 - 只需使用相同的根 CA 來頒發新憑證即可。

相關內容