web-dev-qa-db-ja.com

Webサーバーは証明書チェーンをWebクライアントに送信しますか?

私のWebサーバー(最新のApache)に有効な(有効期限が切れていない、または取り消されていない)Verisign証明書チェーン(ルート->中間->リーフ/マイサーバー)がある場合、サーバーsendクライアントへのチェーン全体(?) Webクライアント(例:最新のChrome)needがそれぞれのsameオンラインの証明書、特にクライアントがすでにルートCAを信頼している場合

クライアントがVerisignに連絡できない場合はどうなりますか? (たとえば、WiFiなしのラップトップでのLAMPセットアップ)。

6
mellow-yellow

RFC 5246 Chapter 7.4.2 を読むと、次のことがわかります。

証明書リスト
これは証明書のシーケンス(チェーン)です。送信者の証明書はリストの最初に来る必要があります。以下の各証明書は、その前の証明書を直接証明する必要があります。証明書の検証ではルートキーを個別に配布する必要があるため、ルートの証明機関を指定する自己署名証明書は、リモートエンドがそれを検証するためにすでに所有している必要があるという前提の下で、チェーンから省略される場合があります。

それはかなりよく説明しています。サーバーが実際にそれを行うかどうかは、システム管理者がサーバーを構成した方法に依存します。多くのクライアントがAIA拡張機能で提供されるURLを使用してCA証明書をフェッチできるため、不適切に構成されたサーバーの多くは上記を実行せずに「回避」します。

多くのクライアントは、チェーンを構築するたびにフェッチする負担を軽減するために、受信/ダウンロードする証明書もキャッシュします。 Chromeは、MicrosoftのCAPIを使用して証明書を管理する(IEと同じ)証明書をキャッシュします。Chromeは、MozillaのNSSを使用して証明書を管理します証明書もキャッシュする証明書したがって、オンラインでWebサイトを使用した場合、すべての上位のCA証明書がシステムにキャッシュされ、(しばらくの間は)オフラインで機能します。

ただし、一部のCAは失効チェックにOCSPを使用します。オフラインの場合、OCSPクライアントは失効情報についてOCSPレスポンダーに接続できません。そのシナリオで何が起こるかは、クライアントソフトウェアの構成によって異なります。デフォルトでは、ほとんどのブラウザは「ソフトフェイル」します。つまり、OCSPレスポンダに接続できないという事実を無視し、すべてが正常であると想定します。一部は「ハードフェイル」に設定でき、OCSPレスポンダに接続できない場合、失効チェックに失敗します。

10
garethTheRed

もちろん、サーバーが送信するものは、構成方法によって異なります。

SSLCertificateChainfile ファイルのコンテンツ(構成されている場合)および SSLCertificateFile のコンテンツを送信します。

これらにはCAルート証明書は必要ありませんが、クライアントが信頼チェーンを確立できるようにするための中間証明書を含める必要があります。

オフラインのシナリオでは何が起こるかわからないが、オフラインのときはとにかく本番サービスを使用できないため、調査する必要がなかった問題ではない。自分でテストしてください。

0
HBruijn