好的,我有一个SSL问题,在这台1 Win7 x64机器上似乎无法通过。我已经使用了多年的自我签名证书,甚至在博客上写过,所以我有经验。然而,这一次发生了一些我搞不懂的事情。
我在我的机器上创建了(2)本地主机SSL证书。
我得到的错误是:
该网站提供的安全证书是为另一个网站的地址签发的。
当我查看从IE浏览器提供的证书时:它显示正在使用颁发给'DevMachine123‘的localhost证书,而不是颁发给localhost的本地主机(上面的#2),这应该解决了这个问题。因此,名称不匹配,因为'DevMachine123‘与'localhost’不匹配。
另外,我的证书已经添加到“受信任的根证书颁发机构”中,因此它们都是受信任的证书。
最后,我检查了IIS中我的机器上的“默认网站”的https端口443绑定配置。我查看了证书,它显示了正确的本地主机证书绑定(上面的2与CN=localhost)。
我觉得我已经在这里覆盖了我的基地(是的,我见过这和这,所以请不要再发帖)。我在这里错过了什么?
谢谢!
发布于 2012-11-26 04:31:08
我有一个类似的问题,也通过了您上面提到的站点绑定检查。我运行了以下netsh命令
netsh http show sslcert这向我展示了两个SSL证书绑定。一个在IP:端口0.0.0.0:443与正确的证书和一个在IP上:端口:443与一个过期的证书。我为本地计算机打开了CertMgr.msc (有关说明请参见这里 ),并搜索无效证书并发现它已过期。
为了解决这个问题,我做了以下工作
netsh http delete sslcert ipport=[::]:443iisreset /restart发布于 2016-04-08 08:35:28
与@IsolatedStorage非常相似,但提供了一些帮助我的更多细节。
首先,对你来说可能是相同的几点
首先,我强烈建议使用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获得的错误散列(或从fromChrome获得的指纹)。
对我来说,这产生了以下结果。你会看到它是绑定到一个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绑定,但是这个服务器已经有几年的历史了,我认为有些东西被破坏和卡住了。
所以你会想要删除它。
为了安全起见,您需要首先运行以下comand,以确保只删除这一项:
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名称,如果您有任何只是为了确定。
可能想在这里的IISRESET,以确保以后没有惊喜。
最后注意:如果您使用的是集中式证书存储,并且您正在看到异常行为,甚至试图确定它是否从那里提取您的证书,请不要担心--这不是您的错。它似乎有时会立即接收新文件,但会缓存旧文件。在进行任何更改后打开和重新保存SSL绑定似乎是重置它,但不是100%的时间。
祝你好运:-)
发布于 2014-05-19 13:50:42
同样的症状
将下拉列表中的HTTPS绑定更改为服务器IP (在站点绑定对话框中)。它被设置为“所有未分配的”,收到了关于覆盖现有证书/ IP组合的警告,我接受了该组合,并解决了问题。
https://stackoverflow.com/questions/12866117
复制相似问题