证书存储中已安装 SSL 证书,但不在 IIS 证书列表中



将通配符SSL证书安装到证书存储中后,该证书不会出现在IIS证书列表中以用于站点绑定。

证书安装正确,但证书中显然没有密钥。

你如何在不提出新请求或联系某人获取密钥的情况下解决这个问题(例如,如果是在发布前一天?;-)

我今天遇到了这个问题。由于时间和其他一些问题,无法从提供商处获取密钥。

我在这里找到了以下解决方案(在pixeloa的评论下),并认为在Stack Overflow上也有答案会很好。

如果证书没有私钥,您可以通过执行以下操作来解决此问题:

要解决此问题,请使用MMC管理单元将证书导入计算机帐户的个人存储,单击它并抓住序列号行。转到dos,运行certutil -repairstore my "paste the serial # in here"(除非从序列号中删除空格,否则需要引号),然后用个人证书刷新MMC,右键单击它-导出-选择除DELETE PRIVATE KEY外的所有内容,点击ok。然后转到IIS并IMPORT证书而不是完成请求。

值得一提的是,我实际上只需要运行certutil -repairstore命令,我的证书就可以工作了。我确实运行了导出并为导出本身设置了密码,但我不必重新导入证书。该证书现在显示在IIS的证书列表中,可用于HTTPS绑定。

我希望这对某人有所帮助。

也遇到了同样的问题,并从上述答案中获得了灵感,找到了简单的解决方案。以下是一个快速的逐步总结:

  1. 首先使用证书插件打开MMC
  2. 将您的新证书(证书图标左上角缺少密钥)拖放到"个人"证书存储中。我这么做是因为"Web Hosting"商店的名称是一个所谓的友好名称,而不是商店的真实名称,而且我记不起命令提示符实用程序certutil所需的真实名称。相反,我只记得"个人"的真名是"我的"。让剩下的事情变得简单,一旦完成,我只需将证书移回"Web主机">
  3. 一旦新证书(缺少密钥)在"Personal"存储中,启动命令提示符并发出以下命令:certutil-store"My">(假设需要引号)
  4. 记下证书的序列号。它在证书转储的第一行。如果"我的"存储中有其他证书,则需要找到刚移动的证书。例如,查看到期日期和名称。标记并复制序列号
  5. 现在发出命令certutil-rerepairstore"My"><在此处粘贴序列号>并注意私钥已验证
  6. 将证书移回"Web主机"存储并刷新。现在,您应该看到证书图标在左上角覆盖了一个小密钥图标
  7. 现在,您应该能够从IIS绑定对话框中选择证书

玩得开心!

如果您使用Godaddy作为您的证书颁发机构,并且您遇到了此问题您所要做的就是重新对证书进行密钥设置。我尝试了上面的certutil-rerepairstore我的"将序列号粘贴在这里">,但系统希望我使用智能卡进行身份验证。(在服务器2016和2012R2上运行IIS10)

当我创建一个证书请求,经过重新键入过程和"完成证书请求"过程时,我能够成功地配置"绑定…",而证书不会消失。

要解决此问题,需要导入私有证书(PFX)。

如果您没有PFX,请使用OpenSSL生成它:

  • 下载&安装OpenSSL
  • 打开命令行并运行:

    openssl pkcs12 -export -in public_certificate.cer -inkey server.key -out private_certificate.pfx

然后,安装private_certificate.pfx(右键单击->安装证书)。

现在,您的证书不再消失,您可以通过SSL绑定网站。

一个伟大的资源:https://blog.lextudio.com/the-whole-story-of-server-certificate-disappears-in-iis-7-7-5-8-8-5-10-0-after-installing-it-why-b66e802baa38

如果您的服务器成功安装了证书,则可以从另一台服务器上的IIS导出pfx。

更新:

在进行另一轮证书更新(续订)时,我在尝试的每台服务器上都再次遇到了这个问题@盖尔的回答没有奏效,但它确实给了我一个想法。我确定了生成证书请求的服务器,并在那里成功安装了新证书。从那台服务器上,我可以导出一个pfx,然后在其他服务器上导入pfx版本。无需重做证书请求。

也有同样的问题。

您需要确保安装在与创建"CSR"文件的服务器相同的服务器上。否则,它将没有私钥。

如果你拿到了证书,只需要求重新键入,它就会要求一个新的CSR文件。即Go Daddy允许你重新键入密钥,只需找到证书,然后点击"管理">

我不是这方面的专家,但这确实奏效了。

如果您在批准旧的证书申请后生成新的证书申请,就会发生这种情况。新请求将导致IIS删除与您的第一个证书请求关联的私钥,因此,当您导入与第一个请求关联的(现已签名的)证书时,它将没有与之关联的私钥。由于它没有私钥,因此无法用于SSL绑定,也不会出现在IIS管理器中。

您可能能够恢复私钥,因为它存储在您的计算机上的多个位置:

  1. 开始->mmc.exe->添加管理单元->证书->计算机帐户。验证已安装的证书是否显示在"个人/证书"选项卡中。如果没有,请导入它。包含密钥图标的证书而非旁边的图标会显示丢失的私钥
  2. 双击磁盘打开证书(.cer)文件。在"详细信息"选项卡中,记下序列号
  3. 启动->cmd.exe。键入"certutil-rerepairstore my(serialnumber here)"。序列号不应有空格。可以是8位或更多的数字

如果certutil命令返回"-rerepairstore命令成功完成",则证书的私钥很可能已恢复。您可以通过转到MMC证书列表并点击F5来验证这一点——如果成功,您的证书现在将在其图标中有一个小密钥。然后,您将能够从IIS中选择证书。

如果失败,您的私钥将不再可用,您需要向签名机构发送新的证书签名请求。

我在IIS 10中也有同样的情况。

我通过使用IIS管理器导入.pfx文件来修复它。

选择服务器根(在站点节点上方),单击右侧窗格中的"服务器证书",然后在那里导入pfx。然后我可以在为站点下的网站创建ssl绑定时从下拉列表中选择它

我有一个密钥文件&crt文件,但它不会在IIS中显示,因为在导入过程中我无法将密钥附加到证书。最终创建了一个pfx文件,其中包含证书&密钥,然后它工作(当导入到计算机而不是本地用户时)

使用OpenSSL创建了文件(先下载)。

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

当安装的证书不包含您的私钥时,就会发生这种情况。

为了检查证书是否包含私钥以及如何修复它,请使用Entrust 提供的这个不错的教程

我遇到了类似的问题,并尝试了所有可能的组合以及接受的答案,但没有任何运气。最后我找到了DigiCert SSL Utility,它帮助我在几次点击中安装了证书。你可以在这里下载。希望这个答案能为其他人节省一些时间。

问题是证书请求(CSR)不是从IIS生成的。如果你从其他来源生成,例如OpenSSL,它会带来问题。您需要从IIS生成证书请求(CSR)->创建证书请求,然后输入所有详细信息,然后发送给供应商以重新生成SSL证书。在那之后,我的工作正常。

当你有一个证书和两个不同的web服务器时,我是如何修复的:

  1. 列表项
  2. 您应该像往常一样在其中一台服务器上生成证书在IIS中然后在该服务器上您也可以完成证书在IIS中
  3. 运行程序DigiCertUtil并导出该工作证书
  4. 安全地转到IIS中的其他web服务器certificates从步骤3导入该文件
  5. 然后使用该证书创建绑定

我们的团队在尝试在我们的新VM上应用通配符证书时遇到了类似的问题。

因此,如果我们试图将现有证书复制到新的VM,但最终出现了相同的问题(IIS证书列表中缺少证书),情况可能会有所不同。

这篇文章(下面的链接)帮助了我们:

因此,诀窍是从原始服务器导出证书,并在导出过程中包含私钥(添加密码以保护证书)

然后将其导入到要安装证书的新服务器。将密钥标记为可导出,以便以后可以导出。

我不想一步一步地做,因为它在文章中有很好的记录。

https://www.digicert.com/kb/ssl-support/certificate-pfx-file-export-import-iis-10.htm

其他答案中提到的certutil-rerepairstore命令对我有效,但如果你的证书在"Web Hosting"存储中,并且你不想移动它,那么"Web Hostting"存储的真实(内部)名称是"WebHosting",对于任何遵循此处提到的步骤的人来说。

如果您使用的是Godaddy证书,那么问题是创建证书请求的机器和尝试完成请求的机器不同。因此,请执行以下操作:

  1. 使用godaddy创建的"生成的私钥.txt"文件。使用此文件创建.pfx证书(带私钥)可以使用OpenSSL命令:

    openssl pkcs12-export-out{mydomain}.pfx-inkey generated-permokey.txt-in{your.crt文件}

  2. 上述命令将生成具有私钥{mydomain}.pfx.的证书

  3. 使用"导入"选项在IIS中导入此证书

我也遇到了同样的问题。这里的问题是,我在本地系统上安装了godaddy证书,然后在服务器上复制,所以没有私钥。所以,使用在线转换器将ssl转换为.pfx,然后安装它。这肯定会奏效。

对于任何使用GoDaddy生成的IIS证书的人,您必须从IIS生成证书请求。GoDaddy网站上的说明不正确,希望这能节省一些时间。

https://ca.godaddy.com/help/iis-8windows-server-2012-generate-csrs-certificate-signing-requests-4950

在GoDaddy论坛上找到了一个叫mcdunbus的人的答案。这是文章https://www.godaddy.com/community/SSL-And-Security/Trouble-installing-SSL-Certificate-on-IIS-8n-Windows-2012/td-p/39890#

最新更新