好的,我有一个 SSL 问题,我似乎无法在这台 1 Win7 x64 机器上解决。多年来我一直在使用自签名证书,甚至之前在博客上写过关于它们的文章,所以我有经验。但是,这次我无法弄清楚发生了什么。
我在我的机器上创建并安装了 (2) 个本地主机 SSL 证书。
- 在 IIS (7.5) 中发布和创建的本地主机(友好名称)。它包含我的机器名称的“颁发给”和“颁发者”值:“DevMachine123”。这是为 IIS 中“默认网站”下配置的应用程序提供的证书。
- 使用 makecert.exe 工具创建的本地主机 SSL 证书,其中使用了 CN=localhost(通用名称)。它包含“localhost”的“Issued To”和“Issued By”值。这是我想要在 IIS 中为我在“默认网站”下配置的应用程序提供的 SSL 证书。
我得到的错误是:
'The security certificate presented by this website was issued for a different website's address.'
当我查看从 IE 浏览器提供的证书时:它显示正在使用颁发给“DevMachine123”的本地主机证书,不是颁发给本地主机(上面的#2)的本地主机应该解决这个问题。因此名称不匹配,因为“DevMachine123”与“localhost”不匹配。
还有一点要说明;我的证书已添加到“受信任的根证书颁发机构”,因此它们都是受信任的证书。
最后一点,我检查了 IIS 机器上“默认网站”的 https 端口 443 绑定(bind)配置。我查看证书,它显示绑定(bind)了正确 localhost 证书(上面的#2 CN=localhost)。
我觉得我在这里涵盖了我的基础(是的,我已经看到了 this 和 this 所以请不要重新发布)。我在这里缺少什么?
谢谢!
最佳答案
我遇到了类似的问题,并且还通过了您上面提到的网站绑定(bind)检查。我运行了以下 netsh 命令
netsh http show sslcert
这向我展示了两个 SSL 证书绑定(bind)。一个在 IP:Port 0.0.0.0:443 上,证书正确,另一个在 IP:Port [::]:443 上,证书过期。我为本地计算机打开了 CertMgr.msc(有关说明,请参阅 here)并搜索无效证书并发现它已过期。
为了解决这个问题,我做了以下事情
netsh http delete sslcert ipport=[::]:443
iisreset/restart
关于iis - IIS 提供的本地主机证书不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866117/