在 Windows Server 2008 R2 上通过 IIS 7.5 生成 CSR 是否总是会创建一个新的私钥?

在 Windows Server 2008 R2 上通过 IIS 7.5 生成 CSR 是否总是会创建一个新的私钥?

为 Windows 2008 R2 服务器生成 CSR,需要确保用于 CSR 的私钥是新的。

我之前曾使用 OpenSSL 创建自己的自签名证书进行测试,如果我没记错的话,我可以指定要使用的私钥。

在 IIS 服务器证书中,我从未被要求生成或选择私钥。

那么,在基于 Windows 的服务器上生成 CSR 是否总是会为其创建新的私钥?如果不是,我如何确保生成/使用新的私钥?

答案1

是的

“创建证书请求”向导会自动生成新的密钥对。

在 IIS 服务器证书中,我从未被要求生成或选择私钥。

事实上这不是真的——只是巫师对此不太明显。

当您输入身份信息(通用名称、地点、组织等)并点击“下一步”后,第二个屏幕会要求您输入两件事:

  1. 加密服务提供商 (CSP)
  2. 位长度

在此处输入图片描述

选择默认 CSP(Microsoft RSA SChannel CSP)和位长度 2048 将相当于 Windows 中的以下版本:

openssl req -new -newkey rsa:2048

签名请求的剖析

CSR 本身可以被认为包含 3 个“部分”:

  1. 明文形式的身份信息(CN、地点、组织等)
    • 这只是字符串,签名者(CA)可以随意更改它们
  2. 公钥
    • 你需要在服务器上有相应的私钥
  3. 可选扩展字段
    • 仍然只是明文信息

发行人审查签名请求中的信息,并可能更改 (1) 和 (3) 的内容。
然后发行人使用其 CA私钥加密请求者的公钥(2)。

最终证书颁发时,其内容包括:

  1. 明文形式的身份信息(CN、地点、组织等)
    • 现在已添加发行人信息
  2. 公钥
    • 还是和上面一样
  3. 可选扩展字段
    • 现在可能还有 Issuer 扩展字段
  4. 签名斑点
    • 这是使用 CA 的私钥签名的公钥

现在,下次客户端获得您的证书时,它可以使用颁发者 CA 的公钥解密签名 blob(4)并将其与证书中的公钥进行比较

相关内容