windows-server-2008 – IIS 7仍然提供旧的SSL证书
我在IIS7中安装了新的SSL证书,删除了旧证书并为新证书设置了绑定 – 因此https现在只绑定到新证书. 我重新启动IIS7(以及Windows 2008 Server本身)并使用以下命令检查证书: netsh http show sslcert 正如我所料,这只显示了新证书 certutil -store MY 这也只显示了新证书而不是旧证书,正如我所料 我还打开了mmc并检查了那里的证书,我只看到了新证书,而不是旧证书. 我还使用具有管理员权限的帐户. 但是 – 当我打开浏览器(从任何计算机)并转到https站点时,它仍然使用旧证书.即使我从浏览器中删除旧证书,它仍然会发送旧证书而不是新证书. 任何人都可以帮我解决我出错的地方吗?我如何驱逐旧的幻影证书? 首先,几个点可能与您相同>我试图更新证书,因为它已过期. 首先,我建议强烈访问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%的时间. 祝好运 :-) (编辑:ASP站长网) |