我有一个工作正常的 IIS 8.0 服务器(在 Windows Server 2012 上),它安装了工作正常的 SSL。证书将在几天后到期,所以我正在尝试更新它。
当我尝试在 IIS 管理器中创建续订请求时,单击Finish
以下内容失败:
---------------------------
Renew an Existing Certificate
---------------------------
There was an error while performing this operation.
Details:
Object reference not set to an instance of an object.
---------------------------
OK
---------------------------
当我尝试通过 MMC 中的证书管理单元执行此操作时,我发现在上下文菜单中没有更新选项。我相信这两个问题都是由于证书位于WebHosting
( Web Hosting
) 证书存储中。
在这种情况下如何创建续订请求?
谢谢!
好吧,好吧,事实证明,“更新”不是我想要的,尽管你会认为它是。查看https://www.geocerts.com/csr/iis_renew_7告诉我,我只想发出新请求,而不是续订。
我尝试将证书移至
Personal
,这让我可以发出续订请求,但 CA(在这种情况下为网络解决方案)不喜欢该请求。不过,他们对新要求很好。所以这一切最终都解决了。我遇到了同样的问题,最终创建了一个新请求而不是“更新”。显然有一种方法可以修复更新功能 - 请参阅 https://blogs.msdn.microsoft.com/sroun/2014/07/25/fixing-object-reference-not-set-to-an-instance-of -an-object-when-using-shared-configuration-in-iis8-x/
我想添加有关这种情况的信息。
我发现,当“创建续订证书请求”的当前证书位于“虚拟主机”存储而不是本地计算机“个人”存储时,会发生发布的错误。
此外,如果在未创建更新证书请求的情况下创建更新证书,只需在原始授权服务器中更新它并使用 IIS 选项“更新证书”导入它,选择“完成证书更新请求”并再次选择“ Web Hosting”存储,更新的证书被导入但与私钥没有任何关联,因此它不会显示在 IIS 中并且无法绑定。但是,如果使用相同的选项并且选择“个人”存储而不是“Web 托管”存储,则私钥与更新的证书相关联。
顺便说一句,这样做会丢失友好名称,我相信更新证书的 IIS 自动绑定不会起作用,因为原始证书绑定没有使用同一个存储。
因此,必须至少在第一次将更新的证书导入本地计算机“个人”存储时进行手动 IIS 证书重新绑定。希望后续更新的证书会自动绑定。
关于“fixing-object-reference-not-set-to-an-instance-of-an-object-when-using-shared-configuration-in-iis8-x”的参考修复没有解决这种情况。
我最后的想法是,如果 IIS 不完全支持,为什么它会提供将证书导入“Web Hosting”存储。我相信这只是一个从未向 Microsoft 报告/识别的错误。Web Hosting 存储是随 IIS 8 引入的,用于将动态证书加载到内存中,而不是像本地计算机个人存储那样批量加载证书。
我的服务器是带有 IIS 10 的 Windows 2019 服务器。