【问题标题】:SSL Certificate Disappearing from IISSSL 证书从 IIS 中消失
【发布时间】:2019-01-04 18:19:42
【问题描述】:

这可能看起来像这个的副本,它有点像,但我尝试过的解决方案都没有为我工作!这是相关的问题:

Installed SSL certificate in certificate store, but it's not in IIS certificate list

我的系统是运行 IIS 10 的 Windows 2016。我们使用 IIS 使用 *.mydomain.com 发布了一个 CSR 文件(我认为没有通用名称,因为它会在收到 GoDaddy 的响应后命名)。我们的客户访问了 GoDaddy.com,购买了 Wild Card 证书,并向我发送了一个包含 .p7b 和 .crt 文件的 zip 文件。根据 GD 说明,我在中间证书部分安装了 .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 是在那里创建的。私钥必须在初始证书请求过程中创建并保存,所以回去看看你当时做了什么,然后把私钥挖出来。否则,您将不得不再次运行整个过程。
  • 我确信 CSR 是在那里创建的,因为那是系统中该客户端的唯一服务器。好的,如果 CSR 不是在那里创建的,那么控制台的证书注册请求部分怎么会有带有私钥图标的证书/请求?或者也许我没有正确理解你?谢谢。
  • 您创建证书请求的具体步骤是什么?如果您在问题中不透露这些信息,那么其他人只能假设私钥丢失了。
  • godaddy.com/help/… 或 Godaddy 上非常相似的东西——我的是 IIS 10。
  • 私钥永远不会离开原始机器。记住这个简单的事实并继续进行故障排除。

标签: ssl iis openssl certificate


【解决方案1】:

在我按照 https://www.godaddy.com/help/rekey-my-certificate-4976 的 GoDaddy 说明并安装 Re-Keyed Certificate 之前,没有任何效果。我不知道发生了什么导致失败。我之前已经遵循了确切的步骤,但客户提供的第一次并没有奏效。我的猜测是,CSR 文件是在服务器机器处于某个待处理的主要 Windows 更新中时生成的,并且在更新后存储在操作系统中的私钥不知何故丢失/无法访问。

哦,好吧,继续。

【讨论】:

    【解决方案2】:

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

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

    具体来说,这些步骤:

    以管理员身份打开 Microsoft 管理控制台 (MMC)。要打开 MMC,请按 Win+R 组合键,输入 mmc 并单击确定。

    • 选择添加/删除管理单元并选择证书并单击添加。

    • 在“证书”管理单元窗口中选择“计算机帐户”,单击“下一步”。

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

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

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

    • 在命令提示符下键入:certutil -repairstore my Serial_number 来自上述步骤。确保您的证书序列号不包含任何空格。它应该是一串符号。

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

    【讨论】:

      【解决方案3】:

      当我们从 MMC -> Advanced Operations -> Create Custom Request 创建自定义 CSR 并选择 Enhanced Key Usage purpose 为 时,还有一个用例 IIS 服务器证书消失>“客户端身份验证”而不是“服务器身份验证”,并且由于我们正在将证书上传到服务器证书下的 IIS,因此“服务器身份验证”应该在 IIS 上显示或不消失 -> 服务器证书

      修复 -

      1. 从 MMC 中删除证书并确保它在之后被删除 清爽
      2. 使用 MMC 自定义请求选项生成 CSR 并选择“服务器 身份验证”在密钥使用目的的情况下,而 使用 MMC 中的自定义请求选项生成 CSR
      3. 为步骤 2 中生成的 CSR 生成证书并由 CA 签名
      4. 完成来自 IIS 的证书请求,证书应该是 在 MMC 以及 IIS 中都可以很好地使用 -> 服务器证书

      这应该可以正常工作!

      【讨论】:

        【解决方案4】:

        终于解决了!!

        第 1 步 - 转到您的服务器 IIS

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

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

        第 4 步 - 填写必要的详细信息(常用名 = 域名,其余不那么重要)

        第 5 步 - 完成向导后,您将获得一个 .CSR 文件,在记事本中打开该文件并按 CTRL-A CTRL-C。

        第 6 步 - 从那里转到您的 godaddy 帐户的产品页面,转到 SSL 并点击管理。

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

        第 8 步 - 返回第 6 步,选择链接到 DOMAIN 的 SSL。

        第 9 步 - 从 SSL 仪表板向下滚动一点后,您会看到 REKEY 选项,单击它。

        第 10 步 - 将 CSR 文本粘贴到提供的空白处

        第 11 步 - 点击“添加更改”

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

        第 13 步 - 重新发布 SSL 后(5-10 分钟),下载 IIS 服务器的 zip 文件。

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

        让我知道这是否适用于所有人。

        【讨论】:

          猜你喜欢
          • 2017-08-08
          • 2017-10-31
          • 1970-01-01
          • 2019-06-15
          • 1970-01-01
          • 2013-11-30
          • 2017-10-18
          • 2013-02-05
          • 2014-03-02
          相关资源
          最近更新 更多