过去,我习惯在我的服务器上生成一个 CSR 文件。这个 CSR 被发送给注册商。然后,注册商给了我一个证书。
今天,我的注册员给了我一个证书(.cer 文件),但我没有向他发送 CSR 文件。
我的问题是:这个 CSR 文件真的需要吗?或者有没有办法在之前不生成 CSR 的情况下设置 SSL 证书?我以为 CSR 包含公钥。
供参考,这是在 IIS 上设置 https 的信息。
谢谢
答案1
过去,我习惯在我的服务器上生成一个 CSR 文件。这个 CSR 被发送给注册商。然后,注册商给了我一个证书。
今天,我的注册员给了我一个证书(.cer 文件),但我没有向他发送 CSR 文件。
这表明注册机构 (CA) 再次签署了您的公钥。CSR 实际上是 CA 签署并创建证书的公钥。您可以打开现有证书和新证书并比较公钥。如果它们匹配,则可以用新证书替换现有证书。
如果两个证书中的公钥相同,则:
- 打开证书 MMC 并集中于本地计算机上下文 (
certlm.msc
) - 导入接收
.cer
文件无需私钥 - 运行
certutil -repairstore my <SerialNumber>
命令,其中<SerialNumber>
是新证书的序列号。
例子:
certutil -repairstore my "0102030405060708090a0b0c0d0e0f"
其中01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
是十六进制八位字节的序列号。Certutil 会将现有私钥与新证书关联。验证密钥是否已成功与新证书关联:
certutil -store my "0102030405060708090a0b0c0d0e0f"
结果您将获得两个共享相同密钥对的公共证书。然后您可以使用 IIS 管理器将新证书分配给网站。