セッションの途中でSSL証明書を置き換えると、ユーザーのブラウザーはどうなりますか?


8

SHA1ハッシュアルゴリズムを使用して署名されたセキュリティ証明書を段階的に廃止する最新のブラウザーに照らして、すべてのSHA1証明書をSHA2で置き換えることに忙しくしています。通常、トラフィックがほとんどないかまったくない夜間または週末に、これらの主に内部使用のWebアプリの証明書を単に置き換えることができます。

知らないうちに、暗号化されたセッションの最中にドメインの証明書が置き換えられた場合はどうなりますか?

安全を期すために、この変更中にセッションの途中のユーザーがセッションの中断や、データベースにまだ保存されていないデータの損失が発生する可能性があると想定できることをクライアントにアドバイスしました。証明書の交換中にセッションの途中だった場合、次のページを読み込んだときに、証明書の交換後に、ブラウザがセッションの確立に使用したものとは異なる署名付き証明書を表示し、セッションを「フリークアウト」。私はすべてのブラウザがこの状況に同様に対処することを期待しますが、私が間違っている場合は教えてください。

ブラウザーがこのシナリオをどのように処理するかについての詳細を探すのにかなりの時間を費やしましたが、一般的または技術的な情報を見つけるのにあまり運がありませんでした。私は本当に好奇心が強いので、検証するいくつかの信頼できる情報源を参照して、Qを簡潔に回答する回答を得ることを期待して、この質問を投稿することにしました。

回答:


7

...私のブラウザは私のセッションが確立されたものとは異なる署名された証明書を見て、セッションを「フリークアウト」させます

Webマスターの観点から、「SSLのしくみ」の詳細に触れずに(情報セキュリティで詳しく説明されています)...

セッションキーが一致しなくなったため、サーバーまたはクライアントのブラウザーが接続を中止しました。次に、クライアントブラウザーは、受信されていない次のページのリソースに対して別のリクエストを行い、新しい接続を開き、SSLハンドシェイク、証明書、キー交換、およびセッションキーを再確立します(下で簡単に説明します)。こちら)。

新しいSSL証明書は同じドメインに発行されるため、証明書のみが変更されるため(つまり、緑色のロックが引き続き表示されます)、ユーザーは通常何も表示しません。同じサイト。


ただし、新しいSSL証明書をインストールすると、サーバーを構成して再起動する必要があるため、セッションが閉じられ、ブラウザーが何も受信しないことを考慮しないでください。

したがって、302リダイレクトを使用してすべてのトラフィックを一時的に「メンテナンス」ページにリダイレクトすることをお勧めします。事前にサイトに投稿され、メンテナンスが行われる時間とサイトが利用できない期間を通知します。

リダイレクトの代わりに、503 Service Unavailable HTTPサーバー応答コードを  Retry-After  HTTPヘッダー応答フィールドとともに送信して、サーバーがいつ再び利用可能になるかを示すこともできます。

最後に重要なことですが、サイトのフロントエンドに複数のサーバーがある場合は、別のサーバーに証明書をインストールし、他のサーバーを更新しながら新しい接続をそのサーバーにリダイレクトできます。あなたは、Apacheでの既存の接続を確認することができ、ここでとIIS ここにすでにフェイルセーフまたはロードバランシングの設定を使用しない場合は、それに助けに。


証明書はロードバランサーの前にあります...したがって、サービスの中断はなく、503 / tempリダイレクトは必要ありません。
ダラス

したがって、10ページのワークフローの5ページにいる場合、セッションは既に1〜5ページに入力されている情報を保持し、新しい証明書で6ページに進みますか、それとも接続のリセットですべてのセッション変数が失われ、開始されますかもう一度ページ1に新しい?
ダラス

これは、Webアプリケーションのコーディング方法によって異なります。SSL / TLSセッションとは異なり、ユーザーのセッションID(Cookie、フォームフィールド、URLなどに保存)を追跡する必要があります。したがって、接続が切断された場合(通常発生する可能性があります)、ユーザーのセッションデータは、ユーザーが別の接続を確立するまで一定期間保持されます。セッションIDが追跡されていないという奇妙な状況では、新しい接続を別のサーバーにオフロードし、既存の接続が完了するかタイムアウトするまで待ってから、そのサーバーをオフラインにしてSSL証明書を更新する必要があります。
ダン

言葉遣いがおかしいとお詫びします。私が得ていたのは、次の接続が、セッションの確立に使用されたものとは異なる証明書からのものであるときに、セッションが問題を起こすかどうかです。セッションは気にしませんか?別の証明書がセッションの再開に何らかの影響を与えると思いますが、セッションは接続を気にしないと言っているような印象を受けます。SSLセッションと「ユーザーセッション」の違いがわかりません。追跡しているセッションIDはSSL / TLSセッションIDであるという印象を受けました。これもユーザーのセッションと同じものだと思いました。
ダラス

:私はあなたが少し専門用語を混同していると思う のセッションIDが HTTPであるため、サーバーによって生成され、後続の要求を介してユーザーを追跡するために使用されるステートレス。すべてのTCPソケット接続は終了できるため、ユーザーが追跡するときにアプリケーションが追跡します。これは、セッションIDを使用して行われます。例:銀行またはその他の安全なサイトに安全にログインし、いくつかのリンクをクリックしてからNICカードを無効にしてから、有効にして別のリンクをクリックします...セッションIDは応用。
ダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.