joe*_*hip 32 windows-server-2008 ssl iis-7
我在 IIS7 中安装了一个新的 SSL 证书,删除了旧证书并设置了新证书的绑定 - 所以 https 现在只绑定到新证书。
我重新启动了 IIS7(以及 Windows 2008 Server 本身)并使用以下命令检查了证书:
netsh http show sslcert
Run Code Online (Sandbox Code Playgroud)
正如我所料,这仅显示了新证书
certutil -store MY
Run Code Online (Sandbox Code Playgroud)
正如我所料,这也只显示了新证书而不是旧证书
我还打开了 mmc 并检查了那里的证书,我只看到了新的而不是旧的。
我也在使用具有管理员权限的帐户。
但是 - 当我打开浏览器(从任何计算机)并转到 https 站点时,它仍在使用旧证书。即使我从浏览器中删除旧证书,它仍然会发送旧证书而不是新证书。
谁能帮我弄清楚我哪里出错了?旧的幻象证书如何驱除?
Sim*_*mon 35
首先几点对你来说可能是一样的
首先,我强烈建议您去https://www.digicert.com/help/
下载他们的 DigiCert 工具。您也可以在线使用它。
输入您的网站https://example.com
,它会显示到期日期和指纹(MS 称之为证书哈希)。它进行实时查找,因此您不必担心您的浏览器(或中间服务器)是否正在缓存某些内容。
如果您使用集中式证书存储,您需要 100% 确定 .pfx 文件是最新版本,因此请转到您的存储目录并运行以下命令:
C:\WEBSITES\SSL> certutil -dump www.example.com.pfx
Run Code Online (Sandbox Code Playgroud)
这将显示到期日期和哈希/指纹。显然,如果此到期日期错误,您可能只是将错误的证书导出到文件系统,因此请先修复它。
如果您正在使用 CCS,那么假设此 certutil 命令为您提供了预期的到期日期(更新的证书的),您可以继续。
运行命令:
netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt
Run Code Online (Sandbox Code Playgroud)
您可能在这里有很多东西,因此在文本编辑器中打开它会更容易。
您需要在此文件中搜索您从中获得的 WRONG 哈希digicert.com
(或从Chrome 中获得的指纹)。
对我来说,这产生了以下结果。您会看到它绑定到一个 IP 而不是我预期的域名。这就是问题。这似乎(无论出于何种原因我不确定)优先于我刚刚更新的 IIS 中的绑定集example.com
。
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
Run Code Online (Sandbox Code Playgroud)
我什至不知道这个绑定是从哪里来的——我的默认站点上什至没有任何 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
Run Code Online (Sandbox Code Playgroud)
现在我们已经验证这是“坏”指纹,我们可以使用以下命令删除预期的单个记录:
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
Run Code Online (Sandbox Code Playgroud)
希望如果您现在返回 Digicert 并重新运行该命令,它将为您提供预期的证书指纹。如果您有任何 SAN 名称,您应该检查所有 SAN 名称以确保。
大概是想在这里 IISRESET 以确保以后没有意外。
最后一点:如果您正在使用集中式证书存储,并且您看到不稳定的行为,甚至试图确定它是否从那里获取您的证书,请不要担心 - 这不是您的错。它似乎有时会立即获取新文件,但会缓存旧文件。在进行任何类型的更改后打开并重新保存 SSL 绑定似乎会重置它,但不是 100% 的时间。
祝你好运 :-)
Tat*_*tas 14
在 IIS 中检查绑定到站点的证书。您可以右键单击该站点并选择编辑绑定。在那里,您应该看到与 SSL 证书关联的端口 443 的绑定。那可能仍然指向旧的。
归档时间: |
|
查看次数: |
59944 次 |
最近记录: |