【AD CS】クロス ルート証明書とは?仕組みや使い方を詳説!

クロス ルート証明書とは、新旧のルート証明書でキーペアが異なる証明機関で利用されます。
クロス ルート用の証明書を “中間証明書” として扱うことで、別のキーペアのルート証明書も信頼できる構成になります。

今回は、クロス ルート証明書の基本概念と、Windows OS でのクロス ルート証明書の利用方法について紹介します。

 

クロス ルート証明書とは

クロス ルート証明書とは、別のキーペアのルート証明書と証明書チェーンを構成するための証明書のことです。

ルート証明機関にて “新しいキーペア” でルート証明書を更新すると、有効期間内のルート証明書が 2 つ存在します。


“新しいキーペア” でルート証明書を更新すると、更新前後で発行される証明書のチェーンも変わります。

旧ルート証明書を信頼している端末でも、ルート証明書の更新後に新しく発行された証明書を信頼できません。
そのため、その証明機関から発行された証明書を利用する端末は、新旧どちらのルート証明書も持っている必要があります。

クロス ルート証明書は、一方のルート証明書を信頼しているだけで、異なる証明書チェーンの証明書も信頼できる技術です。

上図の通り、以下の 2 つのクロス ルート証明書が作成されます。

①旧ルート証明書の公開鍵をもつ証明書を、新ルート証明書の秘密鍵で署名
②新ルート証明書の公開鍵をもつ証明書を、旧ルート証明書の秘密鍵で署名

例えば、ルート証明書の更新後に、新規に発行された証明書のチェーン検証時の動作を考えます。
新規に発行された証明書の署名は、新ルート証明書の秘密鍵で署名されております。
上図でいうと、「新ルート発行の証明書」を検証する動作です。

「ねこねこ」は新ルート証明書を信頼しているので、「新ルート発行の証明書」は信頼できます。
一方、「ねこまる」は旧ルート証明書のみを信頼しているので、「新ルート発行の証明書」は信頼できません。

②のクロス ルート証明書は、旧ルート証明書の秘密鍵で署名されているので、旧ルート証明書とチェーンを構成できます。
また、「②のクロス ルート証明書の公開鍵」=「新ルートの公開鍵」です。
「新ルート発行の証明書」は新ルート証明書の秘密鍵で署名されているので、「②のクロス ルート証明書」とチェーンを構成できます。

「旧ルート証明書」、「②クロス ルート証明書」、「新ルート発行の証明書」はチェーンでつながります。
つまり、「②クロス ルート証明書」があれば、「旧ルート証明書」のみを信頼する「ねこまる」も「新ルート発行の証明書」を信頼することができるようになります。

このように、クロス ルート証明書とは、別のキーペアのルート証明書も信頼できるための証明書のことです。

 

AD CS でのクロス ルート証明書の自動生成

Active Directory 証明書サービスで構築した CA サーバーでは、クロスルート証明書は自動作成されます。
先の通り、キーペアを書き換えしてルート証明書を更新します。

1) certsrv 管理コンソールにて、[証明機関(ローカル)][<CA 名>] を右クリックして [すべてのタスク][CA 証明書の書き換え] をクリックします。

 

2) “Active Directory 証明書サービスを停止しますか?” と表示されたら [はい] をクリックします。

3) [CA 証明書の書き換え] にて “新しい公開キーと秘密キーを作成しますか?” にて [はい] を選択し [OK] をクリックします。

 

4) [発行された証明書] の項目に、2 つのクロス ルート証明書が自動で作成されています。

※ クロス ルート証明書は “クロス証明機関” という証明書テンプレートで発行されます。

 

各クロスルート証明書には、それぞれ旧ルート証明書の公開鍵、新ルート証明書の公開鍵が含まれています。

 

 

クロス ルート証明書の使い方

ルート証明書とチェーンを構成できるクロスルート証明書の設定を行います。

1) [ファイル名を指定して実行] を開き、certlm.msc と入力して [OK] をクリックします。

2) 画面の左ペインにて、[証明書 – ローカル コンピューター][信頼されたルート証明機関][証明書] を選択します。

3) 対象のルート証明書を右クリックして [プロパティ] をクリックします。

4) [クロス証明書] タブを選択します。

5) [クロス証明書をダウンロードする URL] の項目に、クロス ルート証明書を公開している URL を入力し [URL の追加] をクリックします。

6) URL が追加されたことを確認したら、[適用][OK] をクリックします。

 

上の手順でクロス ルート証明書を設定したら、別のキーペアから発行された証明書もチェーンが構成されます。

 

 

クロス証明書ダウンロード間隔のポリシー

[クロス証明書] に設定されているクロス ルート証明書は、何らかの証明書の検証が行われる度に確認されます。
ただし、証明書の検証の度にクロス ルート証明書の証明書のダウンロードを行うと、通信負荷がかかります。
そのため、一度ダウンロードしたクロス ルート証明書はダウンロードして、キャッシュを保存します。
有効期限内のキャッシュを保持している間は、URL からクロス ルート証明書はダウンロードしません。

クロス ルート証明書のキャッシュの有効期間は、以下のポリシーにて定義されています。

ポリシー パス:[コンピューターの構成][Windows の設定][公開キーのポリシー]
ポリシー名:[証明書パス検証の設定]
設定値:[ネットワークの取得] タブ
[クロス証明書ダウンロード間隔] (単位:時間)

[クロス証明書ダウンロード間隔] の設定の既定値は 168 時間 (=7 日) です。

クロス ルート証明書を一度、ダウンロードしたら 168 時間の間はキャッシュを参照します。
168 時間を過ぎたら、URL にアクセスして、クロス ルート証明書ダウンロードしなおします。

 

CAPI2 ログの確認

クロス ルート証明書の処理は、CAPI2 イベント ログにて確認することができます。
CAPI2 のイベント ログは既定では無効となっており、そのままの設定だとログは何も記録されません。

証明書関連の処理のログを記録させるには、以下の手順で CAPI ログを有効にする必要があります。

1) 管理者権限をもつユーザーでログオンします。

2) [ファイル名を指定して実行] にて eventvwr と入力して [OK] をクリックします。

3) 画面の左ペインにて、[アプリケーションとサービス ログ][Microsoft][Windows][CAPI2] と展開します。

4) [Operational] を選択した状態で、画面の右ペインの [操作] にて [ログの有効化] をクリックします。

 

クロス ルート証明書の処理に関するログとして、以下のログが記録されます。

情報 YYYY/MM/DD HH:MM:SS CAPI2 24 クロス証明書をネットワークから取
情報 YYYY/MM/DD HH:MM:SS CAPI2 22 クロス証明書をキャッシュから取得
クロス ルート証明書に関する情報は、[詳細] タブから確認できます。
 
CAPI2 ログのログサイズは既定で 1028 KB であり、すぐにログが循環してしまいます。
[最大ログ サイズ] を増やして、ログに残る期間を延ばすことをおすすめします。