1.3.6.3. 証明書チェーンの確認

証明書チェーンの検証では、特定の証明書チェーンが適切な形式で、有効で、適切に署名され、信頼できるものであることを確認します。以下のプロセスの説明は、認証用に提示される証明書から、証明書チェーンを形成および検証する最も重要な手順を示しています。
  1. 証明書の有効期間は、検証者のシステムクロックによって提供される現在時刻に対してチェックされます。
  2. 発行者の証明書がある。ソースは、クライアントまたはサーバーのローカル証明書データベース、または SSL/TLS 接続と同様に、サブジェクトが提供した証明書チェーンのいずれかになります。
  3. 証明書の署名は、発行者の証明書の公開鍵を使用して検証されます。
  4. サービスのホスト名は、SAN (Subject Alternative Name) 拡張と照合されます。証明書にそのような拡張がない場合、ホスト名はサブジェクトの CN に対して比較されます。
  5. システムは、証明書の基本制約要件、つまり、証明書が CA であるかどうか、および署名が許可されている子会社の数を確認します。
  6. 発行者の証明書が検証者の証明書データベース内の検証者によって信頼されている場合、検証はここで正常に停止します。それ以外の場合は、発行者の証明書をチェックして、証明書タイプ拡張に適切な下位 CA 表示が含まれていることを確認し、チェーン検証をこの新しい証明書からやり直します。図1.8「ルート CA への証明書チェーンの確認」 は、このプロセスの例を示しています。

図1.8 ルート CA への証明書チェーンの確認

ルート CA への証明書チェーンの確認
図1.8「ルート CA への証明書チェーンの確認」 は、ルート CA のみが検証機能のローカルデータベースに含まれる場合に何が発生するかを示しています。Engineering CA など、中間 CA のいずれかの証明書が検証者のローカルデータベースにある場合は、図1.9「証明書 Chain の中間 CA の確認」 に示されているように、検証はその証明書で停止します。

図1.9 証明書 Chain の中間 CA の確認

証明書 Chain の中間 CA の確認
有効期限が切れている、署名が無効である、または証明書チェーンのいずれかの時点で発行元 CA の証明書がない場合は、認証が失敗します。図1.10「検証できない証明書チェーン」 は、root CA 証明書も中間 CA 証明書も検証者のローカルデータベースに含まれていない場合に、検証がどのように失敗するかを示しています。

図1.10 検証できない証明書チェーン

検証できない証明書チェーン