【Windows】オフライン環境でルート証明書更新プログラムを利用する構成について

PKI

Windows OS ではルート証明書を自動登録できる “ルート証明書更新プログラム” という機能があります。
ルート証明書更新プログラムの基本的な仕組みは、以下の記事で紹介しておりますのでご参照ください。

関連記事

Webサイトで使用されているサーバー証明書や、アプリケーションのインストーラーに付与されたコード署名を信頼する際には、証明書の検証が行われます。この検証では、証明書が信頼できる認証局(CA)によって発行されたものであるかどうかが確認されます[…]

ルート証明書更新プログラムの機能では、インターネットに接続してルート証明書を入手しています。
そのため、基本的には Windows OS はオンライン環境に接続していることが前提条件です。

しかし、運用方針によってはオフライン環境で、Windows 端末を利用しなくてはいけない状況もあるかと思います。
今回は、オフラインのネットワーク環境でもルート証明書更新プログラムを利用する方法を紹介します。

 

オフライン環境でルート証明書更新プログラムを利用する構成

ルート証明書更新プログラムの機能拡張が KB2813430 の更新プログラムで追加されました。
この機能拡張で、レジストリでルート証明書の取得先のサーバーを指定することができるようになりました。
また、certutil コマンドでインターネット上に公開されているルート証明書の一括でダウンロードできる機能も追加されています。

この 2 つの機能を利用して、オフライン環境でもルート証明書更新プログラムを利用できるように構成できます。
オフライン環境でのルート証明書更新プログラムの動作イメージは以下の通りです。

クライアント端末:インターネット接続できない Windows 端末
ファイル サーバー:インターネットに接続されているファイル サーバー
cltldl.windowsupdate.com :信頼される証明書のリスト、信頼されない証明書リスト、ルート証明書を公開している MS サイト

 

オフライン環境でのルート証明書更新プログラムの流れは以下の通りです。

  1. ファイル サーバーに共有フォルダに “信頼される証明書のリスト”、”ルート証明書” など必要ファイルを展開
  2. クライアント端末にレジストリ RootDirUrl にて、ルート証明書更新プログラムの参照先として共有フォルダの UNC パスを指定
  3. クライアント端末はルート証明書更新プログラムが動作した時にファイル サーバーへアクセス


ルート証明書更新プログラムが動作した時の基本動作はオンライン時と同じです。

あくまで、ルート証明書の取得先が ctldl.windowsupdate.com ではなく、ファイル サーバーとなることが異なるのみです。

 

システム要件

ファイル サーバー、クライアント端末ともに KB2813430 の更新プログラムが適用されている必要がございます。
オフライン環境でのルート証明書更新プログラムの環境を構成するために、KB2813430 を適用しなくてはいけない OS バージョンの一覧は以下の通りです。

  • Windows Vista Service Pack 2
  • Windows Server 2008 Service Pack 2
  • Windows 7 Service Pack 1
  • Windows Server 2008 R2 Service Pack 1
  • Windows 8
  • Windows Server 2012

Windows 8 / Windows Server 2012 以降の OS であれば、KB2813430 の機能は含まれております。
そのため、更新プログラムの適用は必要なく、オフラインでルート証明書更新プログラムを利用する環境を構成できます。

 

ファイルサーバーでの設定手順

ファイル サーバー上で信頼される証明書のリスト、信頼されない証明書リスト、ルート証明書を展開します。

1) everyone に対して読み取りを許可した共有フォルダを作成します。

2) コマンド プロンプトを開きます。

3) 共有フォルダに ctldl.windowsupdate.com からルート証明書更新プログラムに利用されるデータをダウンロードします。
信頼されている証明書リスト、信頼されていない証明書リスト、及び、ルート証明書の実体がダウンロードされます。
以下のコマンドを実行します。

  certutil -syncWithWU <共有フォルダ>

実行例
  certutil -syncWithWU C:\shared

 

 

定期的に certutil コマンドを実行して、共有フォルダに最新のデータを保持する状態となるようにしてください。

 

 

クライアント端末での設定手順

クライアント端末でルート証明書の取得先をファイル サーバーへ変更するレジストリ設定を行います。

1) [ファイル名を指定して実行] を開き、regedit と入力して [OK] をクリックし、レジストリ エディターを開きます。

2) 以下のレジストリを設定します。

キー:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\AuthRoot\AutoUpdate
値:RootDirUrl
型:REG_SZ
設定値: <共有フォルダのパス>
設定値の例:\\server01.test01.local\shared
3) OS を再起動します。
 
レジストリ RootDirUrl を設定した後は、ルート証明書更新プログラムが動作すると、RootDirUrl  に指定した場所を優先してアクセスし、そこから CTL ファイルの入手を試みます。RootDirUrl  に指定した場所に正常にアクセスできない時だけ、フォールバック動作として、ctldl.windowsupdate.com へアクセスを行います。