Windows-Server-2008-R2
在 Windows Server 2008 R2 上通過 IIS 7.5 生成 CSR 是否總是會創建新的私鑰?
為 Windows 2008 R2 伺服器生成 CSR,需要確保用於 CSR 的私鑰是新的。
我之前使用過 OpenSSL 來創建自己的自簽名證書進行測試,如果我沒記錯的話,我可以指定要使用的私鑰。
在 IIS 伺服器證書中,從未要求我生成或選擇私鑰。
那麼,在基於 Windows 的伺服器上生成 CSR 是否總是為其創建新的私鑰?如果沒有,我如何確保製作/使用新的私鑰?
是的
“創建證書請求”嚮導會自動生成一個新的密鑰對。
在 IIS 伺服器證書中,從未要求我生成或選擇私鑰。
這實際上是不正確的——巫師對此並不是很明顯。
當您輸入身份資訊(通用名、地區、組織等)並點擊“下一步”時,第二個螢幕會詢問兩件事:
- 加密服務提供商 (CSP)
- 位長
選擇預設 CSP - Microsoft RSA SChannel CSP - 和 2048 位長度在 Windows 中相當於:
openssl req -new -newkey rsa:2048
簽名請求剖析
CSR 本身可以被認為具有 3 個“部分”:
- 明文形式的身份資訊(CN、Locality、Org. 等)
- 這只是字元串,簽名者(CA)可以隨意更改
- 公鑰
- 您需要伺服器上的相應私鑰
- 可選擴展欄位
- 仍然只是清除文本資訊
發行人審查簽名請求中的資訊,可以更改(1)和(3)的內容。
然後頒發者使用它的 CA私鑰來加密請求者的公鑰 (2)。
頒發最終證書時,它包含:
- 明文形式的身份資訊(CN、Locality、Org. 等)
- 現在添加了發行人資訊
- 公鑰
- 還是和上面一樣
- 可選擴展欄位
- 現在可能帶有頒發者擴展欄位
- 簽名 blob
- 這是用 CA 的私鑰簽名的公鑰
現在,下次客戶端獲得您的證書時,它可以使用頒發者 CA 的公鑰解密簽名 blob (4) 並將其與證書中的公鑰進行比較