【问题标题】:Why would IISManager Bindings dialog show a different Certificate than 'netsh http' command?为什么 IISManager 绑定对话框会显示与“netsh http”命令不同的证书?
【发布时间】:2020-08-06 19:42:01
【问题描述】:

我已经搜索了 SO 以及我能想到的几乎所有其他来源,但找不到我遇到的这个奇怪场景的答案。

我最近续订了通配符证书并将其安装在我的服务器 (Windows Server 2012 DC) 上。我使用 netsh 命令删除旧证书并添加新证书。即

netsh http delete sslcert hostnameport=syncaccess-swc-nap.syncronex.com:443
netsh http add sslcert hostnameport=syncaccess-swc-nap.syncronex.com:443 certhash=A6F49B... certstorename=MY appid='{3a9c5b05-1a95-43f4...}'

这一切都按预期进行。服务器正在根据我的浏览器颁发预期的(更新的)SSL 证书。如果我在服务器上运行netsh http show sslcert,我会看到预期的证书哈希。无论如何,这非常有效。

但是,当我在 IIS 管理器中查看站点绑定时,它仍然显示旧证书。这让我感到紧张,即使一切似乎都正常。

以下是 netsh http show sslcert 针对此特定站点的输出:

这就是 IISManager 显示的内容:

IIS 管理器对话框中该证书的“友好名称”是旧证书的名称(新的是 2021-syncronex.com),您可以看到哈希值不匹配。

我已尝试重新启动站点/应用程序池。我试过重启服务器。这似乎不是一种缓存的情况。

注意服务器上有大约两打站点可能很重要。所有这些都绑定到这个通配符证书,其中一些有多个使用 SNI 的 SSL 绑定。此特定站点不使用 SNI,仅带有一个 https 绑定。

我有几个网站都表现出同样的奇怪行为。

那么,我在那里做错了什么?我希望这只是 IIS 管理器的一个特性,我可以放心地假设一切正常。

【问题讨论】:

标签: ssl iis


【解决方案1】:

Lex Li 的评论给了我需要的提示。 “我做错的事情”是我在部署中遗漏了一个步骤来更新我的默认网站上的证书绑定。我设置了一个默认网站来支持无法使用 SNI 的旧版浏览器,但是在构建我的部署脚本时我完全忘记了它。一旦我更改了我的脚本以确保更新了默认网站绑定,一切都会恢复原状(可以这么说),并且 IIS 管理器绑定对话框符合我对我的 SNI 站点和非 SNI 站点的期望。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2023-03-31
    • 2013-10-08
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2014-01-14
    相关资源
    最近更新 更多