まず、おそらくあなたにとって同じであるいくつかのポイント
- 有効期限が切れたため、証明書を更新しようとしました。
- 同じIPに複数のドメインがバインドされています。それらはたまたまSAN証明書ですが、それはおそらく無関係です。
- 集中証明書ストアを使用しようとしていました。繰り返しますが、これは私の答えのほとんどとは無関係だと思います。
- すでに証明書を更新しようとしましたが、新しい日付が表示されていませんでした。
- 古い証明書の有効期限がすでに切れている場合、おそらく今パニックに陥っています。深呼吸する...
最初にhttps://www.digicert.com/help/
、DigiCertツールにアクセスしてダウンロードすることを強くお勧めします。オンラインで使用することもできます。
Webサイトに入力するhttps://example.com
と、有効期限とthumb印(MSが証明書ハッシュと呼ぶもの)が表示されます。リアルタイムのルックアップを行うので、ブラウザ(または中間サーバー)が何かをキャッシュしているかどうか心配する必要はありません。
中央証明書ストアを使用している場合、.pfxファイルが最新バージョンであることを100%確認したいので、ストアディレクトリに移動して次のコマンドを実行します。
C:\WEBSITES\SSL> certutil -dump www.example.com.pfx
これにより、有効期限とハッシュ/ th印が表示されます。明らかに、この有効期限が間違っている場合、間違った証明書をファイルシステムにエクスポートしている可能性が高いので、まずそれを修正します。
CCSを使用している場合、このcertutilコマンドが(更新された証明書の)予想有効期限を提供すると仮定すると、続行できます。
次のコマンドを実行します。
netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt
ここにはたくさんのものがあるので、テキストエディタで開くのが簡単です。
このファイルで、digicert.com
取得した間違ったハッシュ(または、Chromeから取得したthumb印)を検索する必要があります。
私にとって、これは以下をもたらしました。予想されるドメイン名ではなく、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バインディングさえ持っていませんが、このサーバーは数年前であり、私は何かが壊れて立ち往生したと思います。
そのため、削除する必要があります。
安全のために、最初に次のコマンドを実行して、この1つのアイテムのみを削除するようにしてください。
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
これが「悪い」thumb印であることが確認され、このコマンドで削除できる単一のレコードが期待されます。
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
Digicertに戻ってコマンドを再実行すると、期待される証明書のprint印が得られます。念のため、すべてのSAN名を確認する必要があります。
たぶん、後で驚くことのないように、ここでIISRESETをしたいでしょう。
最後の注意:中央の証明書ストアを使用していて、そこから証明書を取得しているかどうかを判断しようとする不安定な動作が見られる場合、心配しないでください-それはあなたのせいではありません。新しいファイルをすぐに取得することもありますが、古いファイルはキャッシュするようです。何らかの変更を行った後にSSLバインディングを開いて再保存すると、それがリセットされるように見えますが、100%の時間ではありません。
がんばろう :-)
[::1]:443
IISで証明書を更新してものレコードのみが更新されるのに対して、サーバーは期限切れの証明書を「キャッシュ」したことが判明しました0.0.0.0:443
。ありがとうございました!