証明書チェーン
必須証明書チェーンの確立
証明書と鍵を使用する暗号スイートを使用して接続を正常に確立するには、クライアントは、サーバ独自の証明書から、中間証明書 (もしあれば) を含め、信頼された認証局 (CA) の発行する自己署名証明書までのサーバの証明書チェーンを検証できなければなりません。サーバがクライアント・ユーザを認証している場合、このサーバは、クライアント・ユーザ独自の証明書から、中間証明書 (もしあれば) を含め、信頼された CA の自己署名証明書までのクライアント・ユーザの証明書チェーンも検証できなければなりません。
認証は双方向で行うこともできるので、証明書チェーンに対する要件は、クライアントとサーバではなく、検証を行うエンティティ (認証を要求する側) と検証されるエンティティ (認証される側) を対象にしています。
認証を可能にするには、以下の条件を満たす必要があります。
-
検証を行うエンティティは、検証されるエンティティ独自の証明書から信頼された CA の自己署名ルート証明書までの証明書チェーンを構成するすべての証明書へのアクセス権が必要です。このチェーンに含まれる証明書は、検証されるエンティティの証明書ファイル (ハンドシェイク・プロトコルの一部として送信されたもの) と検証を行うエンティティの信頼された CA 証明書ファイルの組み合わせから取得されます。
-
検証を行うエンティティの CA 証明書ファイルには、信頼された CA の自己署名ルート証明書が必要です。
-
検証されるエンティティ独自の証明書は、証明書ファイルの先頭エントリでなければなりません。
-
すべての中間 CA 証明書が必要です。
-
証明書チェーンに含まれる証明書は、検証されるエンティティの証明書ファイルと、検証を行うエンティティの信頼された CA 証明書ファイルに分けることができます。ただし、以下の例で説明するように、各部分は連続する部分証明書チェーンでなければなりません。
以下が存在すると仮定します。
-
“ICA1” という認証機関により署名された証明書を持つ検証されるエンティティ (“VE”)。
-
認証機関 “ICA2” により署名された “ICA1” の証明書、および “RootCA” により署名された “ICA2” の証明書。
-
自己署名ルート証明書を持つ信頼された CA (“RootCA”)。
これらの証明書を、検証されるエンティティと検証を行うエンティティに正しく分類すると、以下のようになります。
検証されるエンティティの証明書ファイルに含まれる証明書 | 検証を行うエンティティの信頼された CA 証明書ファイルに含まれる証明書 |
---|---|
VE | ICA1、ICA2、RootCA |
VE、ICA1 | ICA2、RootCA |
VE、ICA1、ICA2 | RootCA |
ただし、検証されるエンティティの証明書ファイルに VE と ICA2 を、検証を行うエンティティの信頼された CA 証明書ファイルに ICA1 と RootCert を分類することは有効ではありません。