IIS 7.0 - SSL 证书 - 续订还是新的?

Sun*_*nny 13 iis ssl certificate renew

我的一个 SSL 证书(仅限简单域验证)即将在 Windows 2003 IIS 7.0 服务器上过期。

我从另一家供应商那里得到了更好的报价,最初颁发我证书的人不想谈判更低的价格。

无论如何 - 通过 IIS 中的证书向导,我可以选择“更新”或“卸载”,然后安装新证书。

那么 - 我可以使用“更新”选项来创建证书请求并将其传递给新供应商,还是需要从“新”请求开始?对于新供应商来说,以前的证书是由另一个签名者颁发的,这是否重要?

问题是,我不想因为删除旧证书和创建新 CSR 而停止服务器(至少是安全部分),并等待新证书安装。

或者,是否可以选择在不删除旧证书的情况下准备新的 CSR?

Jos*_*hua 7

更新证书允许您在更新证书的到期日期时保留相同的公钥和私钥。这样做的好处是,如果您必须将指纹存储在路由器或其他东西上。我相信更新请求需要相同的颁发 CA,因此手动生成新请求可能更容易。

在不炸毁 IIS 的情况下生成新请求

您可以手动创建证书请求并提交。获得新证书后,您就可以切换 IIS7 正在寻找的证书。如何手动创建 Web 服务器 SSL 证书

该过程的简单要点是您将创建一个包含所需信息的 inf 文件 run certreq -new file.inf file.req。获得请求文件后,您可以将其提交给要颁发证书的 CA,然后接受他们使用命令发送给您的公钥certreq -accept file-from-ca.req

示例请求.inf

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="
Run Code Online (Sandbox Code Playgroud)

上面的示例 inf 是我在内部为自己的 CA 使用的示例,但可以适用于大多数环境。Exportable如果您希望能够存档您的密钥,您可以设置为 TRUE。这FriendlyName是完全可选的,该Extensions部分用于使用备用 DNS 名称(主题备用名称)。

SAN 条目的一个示例是:

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"
Run Code Online (Sandbox Code Playgroud)

这将允许您对上述三个站点使用相同的证书,而不会抱怨名称不匹配(在现代浏览器上 - 我认为 IE6 无法理解)。如果您设置了完全限定域名(主题行的 CN),请务必将其包含在 SAN 中。如果您不需要多个域名,您也可以完全删除扩展区域(此外,某些 CA 可能不支持它)。

过程

一旦你保存了上述信息(我知道它很多)。按着这些次序:

  1. 打开命令提示符并 cd 到您保存上述 inf 的目录。
  2. certreq -new above.inf request.req
  3. 将 request.req 文件提交给您的 CA。他们将处理它并批准/拒绝它。
  4. 当他们批准它时,他们应该在 .cer 文件中将您的公钥发回给您。
  5. 运行certreq -accept file-from-ca.cer以完成设置密钥。

祝你好运!

编辑

certreq 和 inf 文件的完整语法可以在附录 3:Certreq.exe 语法(Windows Server 2003 SP1)中找到。该FriendlyNameHashAlgorithm仅服务器2008(和R2)。您可以通过运行命令certutil -csplist并查看输出来查看受支持的加密提供程序的列表。当前的 Windows 2003 SP2 框确实将“Microsoft RSA SChannel Cryptographic Provider”列为可用提供程序,因此请确保您的文件正确设置了引号,并且该条目仅位于一行(无换行或多行)。

您还可以将 ProviderName 更改为 ProviderType 并使用certreq -csplist.

在这种情况下,我得到以下输出:

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12
Run Code Online (Sandbox Code Playgroud)

所以我可以使用

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"
Run Code Online (Sandbox Code Playgroud)

或者

ProviderType = 12
Run Code Online (Sandbox Code Playgroud)


Rob*_*ert 7

您只需要使用 IIS 6.0 创建一个临时网站。IIS 7.0 允许您一次创建多个挂起的请求。

IIS 7.0 实际上有一个错误,它会导致更新功能生成一个带有非常大的密钥(比您想要的大得多)的 CSR。因此,建议您创建一个新的待处理请求,而不是选择续订选项。安装后,您只需在网站上切换 SSL 绑定,就不会出现任何停机时间。这还允许您在每次续订时生成一个新密钥,从而提高安全性。

证书提供者 (CA) 不关心您是使用新选项还是续订选项,无论您是使用同一个 CA 还是从新 CA 订购,您都可以使用任一选项。