首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS 7仍然服务于旧的SSL证书

IIS 7仍然服务于旧的SSL证书
EN

Server Fault用户
提问于 2011-10-11 15:37:54
回答 7查看 68.5K关注 0票数 37

我在IIS7中安装了一个新的SSL证书,删除了旧证书并设置了新证书的绑定-所以https现在只绑定到新证书。

我重新启动了IIS7 (以及Windows2008Server本身),并使用以下命令检查了证书:

代码语言:javascript
复制
netsh http show sslcert

这只显示了新的证书,正如我所预期的那样。

代码语言:javascript
复制
certutil -store MY

这也只是显示了新的证书,而不是旧的证书,正如我所预期的那样。

我还打开了mmc,检查了那里的证书,我只看到了新的,而没有看到旧的。

我还使用了一个具有管理员权限的帐户。

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

有人能帮我找出我哪里出错了吗?我怎样才能驱除旧的幻影证书?

EN

回答 7

Server Fault用户

发布于 2016-04-08 08:37:58

首先,对你来说可能是相同的几点

  • 我试图更新一个证书,因为它已经过期了。
  • 我有多个域绑定到同一个IP。它们碰巧是SAN证书,但这可能与此无关。
  • 我试着使用集中的证书存储。我再一次认为这与我的大部分回答无关。
  • 我已经试图更新证书,但它并没有显示新的日期。
  • 如果你的旧证书已经过期,你现在可能处于恐慌之中。深呼吸..。

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

输入您的网站https://example.com,它将显示过期日期和拇指指纹( MS称之为证书哈希)。它可以进行实时查找,这样您就不必担心浏览器(或中间服务器)是否在缓存什么。

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

代码语言:javascript
复制
C:\WEBSITES\SSL> certutil -dump www.example.com.pfx

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

如果您正在使用CCS,那么假设这个certutil命令给您预期的过期日期(您更新的证书),那么您可以继续操作。

运行以下命令:

代码语言:javascript
复制
netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt

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

您会想要在这个文件中搜索从digicert.com获得的错误散列(或从fromChrome获得的指纹)。

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

代码语言:javascript
复制
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绑定,但是这个服务器已经有几年的历史了,我认为有些东西被破坏和卡住了。

所以你会想要删除它。

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

代码语言:javascript
复制
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

现在,我们已经验证了这是“坏”的拇指指纹,并且预期可以使用以下命令删除它:

代码语言:javascript
复制
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443

SSL Certificate successfully deleted

希望如果您现在回到Digicert并重新运行该命令,它将给您提供预期的证书拇指打印。您应该检查所有的SAN名称,如果您有任何只是为了确定。

可能想在这里的IISRESET,以确保以后没有惊喜。

最后注意:如果您使用的是集中式证书存储,并且您正在看到异常行为,甚至试图确定它是否从那里提取您的证书,请不要担心--这不是您的错。它似乎有时会立即接收新文件,但会缓存旧文件。在进行任何更改后打开和重新保存SSL绑定似乎是重置它,但不是100%的时间。

祝你好运:-)

票数 40
EN

Server Fault用户

发布于 2011-10-11 15:41:36

检查绑定到IIS中站点的证书。您可以右键单击网站并选择“编辑绑定”。在那里,您应该看到与SSL证书相关联的端口443的绑定。可能还在指向旧的那个。

票数 15
EN

Server Fault用户

发布于 2014-06-17 15:02:14

我也有同样的问题,也检查了绑定。我在IIS中安装了两个应用程序,一个使用新证书,一个使用旧证书。

为了解决这个问题,我必须从服务器上完全删除证书(然后可能是重新启动)。

从IIS -> (IIS树根) ->服务器证书图标中,选择旧证书并在“操作”窗格中单击“删除”。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/320495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档