windows-server-2008 – IIS 7仍然提供旧的SSL证书

前端之家收集整理的这篇文章主要介绍了windows-server-2008 – IIS 7仍然提供旧的SSL证书前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在IIS7中安装了新的SSL证书,删除了旧证书并为新证书设置了绑定 – 因此https现在只绑定到新证书.

我重新启动IIS7(以及Windows 2008 Server本身)并使用以下命令检查证书:

netsh http show sslcert

正如我所料,这只显示了新证书

certutil -store MY

这也只显示了新证书而不是旧证书,正如我所料

我还打开了mmc并检查了那里的证书,我只看到了新证书,而不是旧证书.

我还使用具有管理员权限的帐户.

但是 – 当我打开浏览器(从任何计算机)并转到https站点时,它仍然使用旧证书.即使我从浏览器中删除旧证书,它仍然会发送旧证书而不是新证书.

任何人都可以帮我解决我出错的地方吗?我如何驱逐旧的幻影证书?

首先,几个点可能与您相同

>我试图更新证书,因为它已过期.
>我有多个域绑定到同一个IP.它们恰好是SAN证书,但这可能无关紧要.
>我试图使用集中式证书存储区.我认为这与我的大部分答案无关.
>我已经尝试更新证书,但它没有显示新的日期.
>如果您的旧证书已经过期,您现在可能处于恐慌状态.深吸一口气……

首先,我建议强烈访问https://www.digicert.com/help/并下载他们的DigiCert工具.您也可以在线使用它.

在您的网站https://example.com中输入,它将显示到期日期和指纹(MS称为证书哈希值).它进行实时查找,因此您不必担心您的浏览器(或中间服务器)是否正在缓存某些内容.

如果您正在使用集中式证书存储,则您需要100%确定.pfx文件是最新版本,因此请转到商店目录并运行以下命令:

C:\WEBSITES\SSL> certutil -dump www.example.com.pfx

这将显示到期日期和散列/指纹.显然,如果这个到期日期是错误的,你可能只是将错误的证书导出到文件系统,所以首先去修复它.

如果您正在使用CCS,那么假设此certutil命令为您提供了(更新的证书的)预期到期日期,您可以继续.

运行命令:

netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt

你可能在这里有很多东西,所以在文本编辑器中打开它会更容易.

您需要在此文件搜索您从digicert.com获得的错误哈希(或您从Chrome获得的指纹).

对我来说,这产生了以下结果.您会看到它绑定到IP而不是我期望的域名.这就是问题.似乎这(无论出于何种原因,我不确定)优先于我刚刚为example.com更新的IIS中的绑定集.

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

我甚至不知道这个绑定来自哪里 – 我在我的默认站点上甚至没有任何SSL绑定,但是这个服务器已经有几年了,我觉得有些东西被破坏了并且卡住了.

所以你要删除它.

为了安全起见,您首先需要运行以下命令,以确保您只删除这一项:

C:\Windows\system32>netsh http show sslcert ipport=10.0.0.1:443

SSL Certificate bindings:
-------------------------

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

现在我们已经验证了这是’坏’指纹,并且我们可以使用此命令删除预期的单个记录:

C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443

SSL Certificate successfully deleted

希望如果您现在回到Digicert并重新运行命令,它将为您提供预期的证书指纹.如果您有任何SAN名称,请检查所有SAN名称.

可能希望IISRESET在这里确保以后没有意外.

最后的注意事项:如果您正在使用集中式证书存储,并且您看到不稳定的行为,甚至试图确定它是否从那里拿起您的证书,请不要担心 – 这不是您的错.它似乎有时会立即获取文件,但缓存旧文件.在进行任何类型的更改后打开并重新启动SSL绑定似乎会重置它,但不是100%的时间.

祝好运 :-)

猜你在找的Windows相关文章