Windows-Server-2008-R2

在 Windows Server 2008 R2 上通過 IIS 7.5 生成 CSR 是否總是會創建新的私鑰?

  • April 22, 2014

為 Windows 2008 R2 伺服器生成 CSR,需要確保用於 CSR 的私鑰是新的。

我之前使用過 OpenSSL 來創建自己的自簽名證書進行測試,如果我沒記錯的話,我可以指定要使用的私鑰。

在 IIS 伺服器證書中,從未要求我生成或選擇私鑰。

那麼,在基於 Windows 的伺服器上生成 CSR 是否總是為其創建新的私鑰?如果沒有,我如何確保製作/使用新的私鑰?

是的

“創建證書請求”嚮導會自動生成一個新的密鑰對。

在 IIS 伺服器證書中,從未要求我生成或選擇私鑰。

這實際上是不正確的——巫師對此並不是很明顯。

當您輸入身份資訊(通用名、地區、組織等)並點擊“下一步”時,第二個螢幕會詢問兩件事:

  1. 加密服務提供商 (CSP)
  2. 位長

在此處輸入圖像描述

選擇預設 CSP - Microsoft RSA SChannel CSP - 和 2048 位長度在 Windows 中相當於:

openssl req -new -newkey rsa:2048

簽名請求剖析

CSR 本身可以被認為具有 3 個“部分”:

  1. 明文形式的身份資訊(CN、Locality、Org. 等)
  • 這只是字元串,簽名者(CA)可以隨意更改
  1. 公鑰
  • 您需要伺服器上的相應私鑰
  1. 可選擴展欄位
  • 仍然只是清除文本資訊

發行人審查簽名請求中的資訊,可以更改(1)和(3)的內容。

然後頒發者使用它的 CA私鑰來加密請求者的公鑰 (2)。

頒發最終證書時,它包含:

  1. 明文形式的身份資訊(CN、Locality、Org. 等)
  • 現在添加了發行人資訊
  1. 公鑰
  • 還是和上面一樣
  1. 可選擴展欄位
  • 現在可能帶有頒發者擴展欄位
  1. 簽名 blob
  • 這是用 CA 的私鑰簽名的公鑰

現在,下次客戶端獲得您的證書時,它可以使用頒發者 CA 的公鑰解密簽名 blob (4) 並將其與證書中的公鑰進行比較

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