ユーザ数が多くなると、EAP-TLS用のクライアント証明書を配布するのは大変な作業である。そこで、WindowsServer2012のActiveDirectory(AD)を利用して、クライアント証明書(ユーザ証明書)を自動的に配布する仕組みを紹介する。

前提条件:
・WindowsServer2012で、ActiveDirectoryの設定が終わっていること
・WindowsServer2012で、証明機関のインストール構成が終わっていること。

(1)「管理ツール」から「証明機関」を起動
000















(2)証明書テンプレートを作成する。
左ペインから「証明書テンプレート」を右クリックして「管理」を選択
001














テンプレート「ユーザ」を右クリックし、「テンプレートの複製」を選択。
002














「ユーザ」テンプレートを複製し、ユーザに証明書を自動配布するテンプレートを作成する。

証明書テンプレートのプロパティが表示される。互換性はデフォルトでよい。
特にWindowsXPなどが残っている場合に下位互換性が確保できるからだ。
003

































「全般」タブを開き、テンプレート名を変更する。ここでは、「ユーザ証明書の自動発行」としておく。
「有効期間」は証明書の有効期間、「更新期間」は有効期限が切れるどのくらい前に更新を行うかの設定である。
005
































「要求処理」タブでは、秘密キーのエクスポート(取り出し)のチェックをはずしておこう。
秘密キー(秘密鍵)が第三者に漏れてしまうと、なりすましができてしまうからだ。
007
































「サブジェクト名」タブでは、「サブジェクト名に電子メール名を含める」と「電子メール名」のチェックをはずしておく。ADで電子メールアドレスが登録されていないと、証明書の自動発行が失敗してしまうからだ。
009
































「セキュリティ」タブで、「Domain Users」に読み取りの許可と自動登録の許可を与える。
この設定を行うことで、Domain Users、つまりADの全ユーザがこのポリシーを使った証明書の自動発行の許可を受ける。
011































ここまでの設定が終わったら、「適用」「OK」を押して保存する。

(3)証明書テンプレートの発行
 ここでは(2)で作った証明書テンプレートを発行(有効化)する。

「証明機関」の「証明書テンプレート」を右クリックし、「新規作成」「発行する証明書テンプレート」を選択する。
012















「証明書テンプレートの選択」で、(2)で作成したテンプレート(ここでは、「ユーザ証明書の自動発行」)を選択し、「OK」を押す
013

















「証明機関」の「証明書テンプレート」で、「ユーザ証明書の自動発行」のテンプレートが表示されるのを確認。
014

















証明書テンプレートの作業はここまでである。

(4)グループポリシーオブジェクト(GPO)の割り当て
証明書テンプレートの作成だけでは、まだ証明書の自動配布はできない。自動配布を行うADのオブジェクト(ドメイン全体、OU、サイトなど)に対して、GPOを使って証明書自動配布のポリシーを割り当てる必要がある。

「管理ツール」から「グループポリシーの管理」を起動する。
015
















GPOを割り当てるオブジェクト(ここではドメイン全体)で右クリックし、「このXXにGPOを作成し、このコンテナーにリンクする」を選択する。
016


















GPO名を入力する。ここでは「ユーザ証明書の自動配布」とする。
017











「グループポリシーの管理」ツールで、先ほど作ったGPOが表示されるので、右クリックして「編集」を選択する。
018


















「グループポリシー管理エディタ」で、「ユーザの構成」→「ポリシー」→「Windowsの設定」→「セキュリティの設定」→「公開キーのポリシー」を選択する。
右ペインに「証明書サービスクライアント」が出てくるので、ダブルクリックする。
019


















構成モデルを「未構成」から「有効」に変更し
・有効期限が切れた証明書を書き換え、保留中の証明書を更新、および執行した証明書を削除する
・証明書テンプレートを使用する証明書を更新する
の2つにチェックを入れる
021





























適用を押して、設定は完了である。
コマンドラインを起動し「gpupdate」コマンドを実行しておく。このコマンドで、GPOはドメインに即時反映される。

(5)確認方法
クライアントPCでActiveDirectoryにログオンし、「certmgr.msc」(証明書管理ツール)を確認する。
ユーザ証明書が発行できていれば、「個人」のところに証明書があるはずだ。
025














また、サーバ側の「証明機関」管理ツールの、「発行した証明書」のところにも、発行したユーザ証明書が表示されているはずである。
023


















もしうまく発行できない場合、イベントビューアで確認すると失敗の理由が表示されていることもある。