SSL证书从IIS中消失

8
这似乎是与此重复,但我尝试过的解决方案都不起作用!以下是相关问题:
安装了SSL证书到证书存储中,但没有出现在IIS证书列表中
我的系统是运行IIS 10的Windows 2016。我们使用IIS使用*.mydomain.com(我认为没有在公共名称中,因为这将在收到GoDaddy的响应后命名)发出了一个CSR文件。我们的客户前往GoDaddy.com购买了通配符证书,并向我发送了一个带有.p7b和.crt文件的zip文件。我按照GD的说明在Intermediate Certificate部分安装了.p7b。因此,证书位于个人文件夹中,其中包含“颁发给*.mydomain.com”的信息,友好名称为“gis.mydomain.com”。
但是证书没有私钥,我想这就是问题所在:证书在IIS管理器中消失了。当我尝试certutil-repairstore命令时,会提示插入卡。

我想到了一个解决方案:从控制台的证书申请部分,导出为pfx文件,然后使用OpenSSL制作PEM文件。然后创建一个新的pfx文件导入到IIS;问题是新的pfx文件创建时会出现错误“没有证书与私钥匹配”。以下是命令:

pkcs12 -export -in 1d4c26d43a4da203.crt -inkey my.pem -out final.pfx

请注意,重新密钥可能无法解决问题:Godaddy的.CRT文件似乎是在没有私钥的情况下生成的。此外,尽管CSR文件是在同一台服务器上创建的,但DigiCert无法在服务器上找到私钥。

我的选择是什么?

谢谢!


我不相信 CSR 是在那里创建的。私钥必须在初始证书请求过程中创建并保存,因此请回去查看您当时所做的并找出私钥。否则,您将不得不再次运行整个过程。 - Lex Li
我确定CSR是在那里创建的,因为那是该客户端系统中唯一的服务器。好的,如果CSR不是在那里创建的,那么控制台的证书申请部分为什么会有带有私钥图标的证书/请求呢?或者我可能没有正确理解你的意思?谢谢。 - IrfanClemson
请访问Godaddy网站上类似于https://www.godaddy.com/help/iis-7-generate-csrs-certificate-signing-requests-4800的页面,或者在该网站上搜索IIS 10,以了解如何生成CSRs证书签名请求。 - IrfanClemson
嗨,是的,我不确定客户是否正确地按照了步骤。我已经要求他们与我一起完成ReKey过程,但到目前为止没有回应。但是,.crt文件不应该包含私钥吗?谢谢。 - IrfanClemson
1
私钥永远不会离开原始机器。记住这个简单的事实并继续故障排除。 - Lex Li
显示剩余3条评论
5个回答

11

我按照这里的步骤解决了这个问题:

https://www.namecheap.com/support/knowledgebase/article.aspx/9773/2238/ssl-disappears-from-the-certificate-list-on-windows-server/

具体步骤如下:

以管理员身份打开Microsoft Management Console (MMC)。按Win+R组合键,输入mmc并单击确定即可打开MMC。

  • 选择添加/删除控件,选择证书并单击添加。

  • 在证书控件窗口中选择计算机帐户,然后单击下一步。

  • 在“选择计算机”框中选中本地计算机,然后单击完成。

  • 找到在完成证书请求时导入的证书。证书应该在个人存储区中。请注意,域名旁边的证书图标没有钥匙;这意味着证书没有分配私钥。

  • 双击证书,进入详细信息选项卡。 在证书详细信息中,找到序列号字段,单击它并复制其值。

enter image description here

  • 在命令提示符中键入:certutil -repairstore my Serial_number,其中Serial_number是上一步中的序列号。确保您的证书序列号不包含任何空格。它应该是一个单独的符号字符串。

  • 现在,您可以刷新IIS管理器中的服务器证书列表以查看证书。您可能需要关闭并重新打开IIS。

更新

  • Web Hosting的证书存储名称为webHosting。请使用此名称替换“my”,即个人证书存储。
  • 如果您有多个证书,则只需要对第一个运行certutil -repairstore。其他证书通过IIS中的完整证书请求正确安装(即它们不会消失)。

更新 II

使用GoDaddy,您会得到3个文件:.crt、.pem和.p7b。IIS要求一个.cer文件来完成CSR。以下是如何转换为.cer文件。

将您的.crt文件转换为.cer文件

- Locate your downloaded .crt file, and double-click to open it.
- Select the Details tab, and then the Copy to File button.
- Select Next in the Certificate Wizard.
- Select Base-64 encoded X.509(.CER) and then select Next.
- Select Browse, locate where you want to save your .CER file, and type in a name for your certificate.
- Select Next and then Finished.

谢谢,这帮助我解决了我的问题。 - Brijesh
谢谢,这帮助我解决了我的问题。 - undefined

2

直到我按照GoDaddy的指示执行了操作,重新生成证书并安装了新的证书,问题才得以解决。具体操作步骤请参考https://www.godaddy.com/help/rekey-my-certificate-4976。我不知道是什么原因导致了证书失效。之前我已经按照客户提供的步骤操作过了,但第一次并没有成功。我的猜测是,在服务器机器处于某个待处理的Windows更新状态时,生成了CSR文件,而在更新后,存储在操作系统中的私钥丢失或无法访问。

好吧,继续往前看吧。


0

终于解决了!

步骤1 - 进入您的服务器IIS

步骤2 - 选择您的服务器并从中间面板选择SSL证书

步骤3 - 在右侧的操作面板中选择“创建证书请求”

步骤4 - 填写必要的详细信息(通用名称=域名,其余不太重要)

步骤5 - 完成向导后,您将获得一个.CSR文件,打开文件并使用CTRL-A CTRL-C复制。

步骤6 - 转到您的godaddy帐户的产品页面,然后转到SSL并单击管理。

步骤7(可选)- 要检查CSR文件是否一切正常,请在管理SSL页面上单击“SSL工具”,然后从中选择CSR解码器,您将被带到一个页面,您可以在其中粘贴CSR,如果显示结果,则可以进行下一步。

步骤8 - 返回第6步,选择与域名链接的SSL。

步骤9 - 从SSL仪表板中,向下滚动一点,您将看到REKEY选项,请单击它。

步骤10 - 将CSR文本粘贴到提供的空格中

步骤11 - 单击“添加更改”

步骤12 - 向下滚动,点击“提交所有更改”

步骤13 - 在SSL重新签发后(5-10分钟),下载适用于IIS服务器的zip文件。

步骤14 - 就这样,您应该能够将新的.CES文件添加到IIS中,而不会消失。

如果这对每个人都有效,请告诉我。



0

还有一种情况是当我们从MMC ->高级操作 ->创建自定义请求并选择增强型密钥用途为"客户端身份验证"而不是"服务器身份验证"时,IIS服务器证书会消失。由于我们将证书上传到IIS的服务器证书下,因此它应该是用于"服务器身份验证"才能在IIS ->服务器证书中显示或不消失。

解决方法 -

  1. 从MMC中删除证书,并确保在刷新后已删除
  2. 使用MMC自定义请求选项生成CSR,并在使用MMC的自定义请求选项生成CSR时选择"服务器身份验证"作为密钥用途的目的
  3. 生成证书并由CA签名用于步骤2生成的CSR
  4. 从IIS完成证书请求,证书应该在MMC和IIS ->服务器证书中完美地可用

这应该可以正常工作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接