首先,对您来说可能是相同的几点
- 我正在尝试更新证书,因为它已过期。
- 我有多个域绑定到同一IP。它们碰巧是SAN证书,但这可能无关紧要。
- 我正在尝试使用集中式证书存储。再次,我认为这与我的大部分回答无关。
- 我已经尝试过更新证书,但是没有显示新日期。
- 如果您的旧证书已经过期,您现在可能会感到恐慌。深吸一口气...
首先,我强烈建议您去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
您可能在这里有很多东西,因此在文本编辑器中打开它更容易。
您需要在此文件中搜索从中获取的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
我什至不知道此绑定来自哪里-我的默认站点上甚至没有任何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
现在,我们已经验证了这是“错误的”指纹,并且可以使用以下命令将其删除:
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
希望如果现在返回Digicert并重新运行该命令,它将为您提供预期的证书指纹。如果有任何名称,应检查所有SAN名称。
可能想在这里进行IISRESET,以确保以后不会出现任何意外。
最后说明:如果您使用集中式证书存储,并且看到不稳定的行为,甚至试图确定它是否从那里获取证书,请不要担心-这不是您的错。似乎有时会立即提取新文件,但会缓存旧文件。进行任何形式的更改后,打开并重新保存SSL绑定似乎可以将其重置,但不是100%的时间。
祝好运 :-)
[::1]:443
而在IIS中更新证书仅更新了的记录0.0.0.0:443
。谢谢!