web-dev-qa-db-ja.com

期限切れの中間証明書を新しいルート証明書に置き換えるブラウザ

ファイアウォールを介して特定のWebサーバーに接続していますが、ファイアウォールがルート証明書の有効期限が切れていることを警告します。ファイアウォールをバイパスすると、すべてのブラウザーで証明書に問題がなく、チェーンを確認するとすべての証明書に問題がありません。

私はそれを詳しく調べたところ、ブラウザが実際にサーバーから送信された期限切れの証明書を、Windows証明書ストアから期限切れになっていない証明書に置き換えていることがわかりました。 (サーバーは、ルート、中間1、中間2、サーバー証明書の4つの証明書のチェーンを送信します。中間1は期限切れです。ブラウザー/ OSに置き換えられ、ブラウザーのルート証明書になります。これは、GlobalSignの証明書チェーンです。 )

どうやらそれらは同じフレンドリ名とおそらく他の同様のプロパティを持っています(もちろん公開鍵は同じです)。 IE/Chromeは同じことをしているので、ブラウザで使用されるいくつかのWindows機能とほとんど同じように見えます。

なぜそれが起こるのですか?証明書はどのように置き換えることができますか?私が気付いていない潜在的な危険はありますか?

ブラウザビューアとパケットキャプチャを比較した画像キャプチャです

1
HSC

回答:Windowsは、Webサーバーによって提供されたCA証明書を無視します。 Webサーバーの証明書のみをオペレーティングシステムのCA証明書ストアに格納されている適切なCA証明書と照合します。これらの証明書は、オペレーティングシステムによって信頼されています。チェーンがオペレーティングシステムのCA証明書ストアにまだ格納されていない場合、WindowsにはWebサーバーの証明書を発行したCA証明書チェーンを取得する方法もあります。これに関するいくつかの詳細はここで見つけることができます:

単にWebサイトにアクセスするだけでルートCAを信頼できるものとしてPCにプッシュできますか?

一部のファイアウォールは、Webサーバーから送信されたCA証明書をチェックし、証明書の1つが期限切れになるとアクセスをブロックします。一般に、ファイアウォールは、Windowsなどの通常のオペレーティングシステムと比較して、証明書に関して異なる動作をします。

また、CA証明書は異なるシリアル番号と有効日で再発行できることも学びました。証明書には、同じ「フレンドリ名」とキーのペアが含まれます。

この特定のケースでは、Webサーバーがチェーンに属する1つのCA証明書の古いバージョンを送信しており、ファイアウォールは証明書の有効期限が切れていることを検出し、Webサイトへのアクセスをブロックしています。ファイアウォールがバイパスされると、サイトにアクセスできます。これは、Windowsに新しいバージョンのCA証明書があり、Webサーバーの証明書をそれと照合するために発生します。

1
HSC