我有从 GoDaddy 下载的 ssl 证书文件,其中包含 .pem 文件、.crt 文件和 .p7b 文件。我有一个以 .key 扩展名生成的私钥。我需要将其分配给我从 GoDaddy 收到的证书,并将其安装在 IIS 证书中。
我已经从 .crt sslcertificate.cer 创建了 .cer 文件
问题实际上是,当我使用“完成证书请求”选项在 IIS 中安装证书并添加证书列表中显示的详细信息时。但是,当我刷新或转到其他选项并返回证书列表时,我看不到刚刚添加的新证书,它消失了。
通过谷歌搜索,我了解到问题是由于私钥与证书不相关。当我检查证书本身时,我可以看到没有显示密钥图标。我尝试通过 openssl 命令添加以使其成为 p12K 文件,并附加密钥,但“其结果是需要密码”并退出命令行,根据搜索结果,它应该要求输入密码(我怀疑该密钥文件中是否已设置密码)。我还尝试了 certutil -repairstore 我的“序列号”命令,但它要求智能设备连接。
首先,我尝试创建一个新密钥,因为这个私钥是一个旧密钥,我不确定在创建时是否有人在其中输入了密码,这就是密码询问的原因。所以我创建了一个新的密钥文件“newkey.key”,并尝试用它制作 .pfx 文件,但它显示这个密钥不是与 .cer/crt 文件关联的正确密钥。然后我尝试从我收到的 pem 文件创建一个 .key 文件,但它仍然说无法从 pem 文件中检索数据
答案1
如果你覆盖了原始.key
文件,那你就倒霉了。除非你有备份,否则证书现在就没用了。
假设您有原件...
您首先需要加入您的原来的 .key
使用从 GoDaddy 收到的文件.pem
创建 PKCS#12 文件:
openssl.exe pkcs12 -export -in sslcert.pem -inkey sslcert.key -out sslcert.pfx -passout pass:password
(注意:如果您使用的是 OpenSSL 版本 3 和/或 Windows 的旧版本,则可能需要附加-nomac -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES
到上述命令)
接下来,双击创建的.pfx
文件以将其导入。在导入向导中,选择本地计算机并点击下一个。在下一页上,点击下一个再次。在私钥保护页面上,password
输入密码框并点击下一个. 在证书存储页面,选择将所有证书放入以下存储中, 点击浏览并选择个人的在点击之前好的关闭选择对话框,然后单击下一个。 点击结束。
现在您需要将中级 CA 证书导入到存储中。双击收到的.p7b
文件以将其打开。在出现的 certmgr 窗口中,双击证书。将出现存储在 p7b 中的证书列表。双击中间 CA 以将其打开。中间 CA 是发给和由...发出不同。在我刚从 GoDaddy 下载的证书上,证书颁发给Go Daddy 安全证书颁发机构 - G2,但您的证书可能有所不同。证书显示后,点击安装证书...。将打开一个对话框,类似于上面用于导入 pfx 的对话框。在欢迎页面上,选择本地计算机并点击下一个. 在证书存储页面,选择将所有证书放入以下存储中, 点击浏览并选择中级证书颁发机构在点击之前好的关闭选择对话框,然后单击下一个。 点击结束。
现在,转到IIS 管理器并导航到将绑定此证书的站点。点击绑定...在里面操作选项卡(右侧窗格)中,选择https绑定并点击编辑...。在“编辑站点绑定”对话框中,您导入的证书应该显示在SSL 证书。选择它,然后单击好的, 然后关闭。
验证一切正常后,您需要删除该.key
文件,因为该文件包含明文私钥,并且该.pfx
文件受密码“password”保护。或者,创建.pfx
一个更好的密码并将其存储在安全的地方,以防您在某个时候需要它来恢复您的 IIS 服务器。
供将来参考,使用 Windows 原生工具生成认证请求会更容易。这样,私钥已经在 Windows 商店中,您需要做的就是导入返回的证书,可能是中间 CA(如果 GoDaddy 已更改它)并将证书绑定到 IIS。