2021/04/18

証明書の自動配布 | ADCS

    

 前回、ADCSのインストールおよび初期設定を完了しました。本記事では、ADCSで生成した証明書、例えばコンピュータ証明書やユーザ証明書を自動的に発行・配布する設定について説明します。コンピュータ証明書やユーザ証明書は、手動で発行していたら漏れもでますし、時間もかかってしまいます。ADのGPOを活用し、ドメイン参加したユーザやコンピュータに対して証明書を自動発行します。


CAのバックアップ

万一、ルート証明書が壊れてしまった時のためにCAのバックアップを作成しておきます。他の場所への保管やオフラインでの秘密キーの保管など、セキュリティに配慮してバックアップを行います。

  1. サーバマネージャを起動します。
  2. ツール → 証明機関(Certificate Authority)をクリックします。


  3. 証明機関ツール上で、ルートCAを右クリックし、「すべてのタスク」→「CAのバックアップ」を選択します。


  4. ウィザードの説明画面が出てきたら、「次へ」ボタンをクリックします。


  5. バックアップする項目にはすべてを選択します。秘密キーとCA証明書、証明書データベースの両方をチェックします。任意のバックアップ先を指定します。「次へ」ボタンをクリックします。


  6. 暗号化された秘密キーやCA証明書ファイルへアクセスするためのパスワードを設定します。「次へ」ボタンをクリックします。


  7. これでバックアップは完了です。「終了」ボタンをクリックします。


  8. バックアップ先フォルダに、バックアップファイル(秘密キーとデータベースファイル)が存在することを確認します。


グループポリシーの設定

コンピュータ証明書およびユーザ証明書を自動更新するために、グループポリシーの設定を行います。

  1. サーバマネージャを開きます。
  2. ツール → グループポリシー管理(Group Policy Management)をクリックします。


  3. ドメインのデフォルトドメインポリシーを右クリックし、「編集」をクリックします。


  4. グループポリシー管理エディタの左ペインで、コンピュータ → ポリシー → Windowsの設定 → セキュリティの設定 → 公開キーのポリシーを選択します。右ペイン内で「証明書サービスクライアント - 自動登録」を選択します。


  5. 右クリック → プロパティ、またはダブルクリックして、プロパティを開きます。


  6. 構成モデルで「有効」を選択し、2つのチェックボックスにチェックを付け、OKボタンをクリックします。


  7. 「ユーザの構成」についても上記4~6の手順を実施します。


証明書テンプレートの作成

証明書を自動配布するために、証明書テンプレートを作成します。

コンピュータ証明書

  1. サーバマネージャを起動します。
  2. ツール → 証明機関(Certificate Authority)をクリックします。


  3. 証明機関ツール上で、ルートCAを展開します。
  4. 「証明書テンプレート」を右クリックして「管理」を選択します。


  5. 証明書テンプレートコンソールが開きます。テンプレートの一覧から「コンピュータ(Computer)」を右クリックし、「テンプレートの複製」をクリックします。


  6. 新しいテンプレートのプロパティが開きます。
  7. 「全般」タブをクリックします。テンプレートに名前(例:コンピュータ証明書)を付けます。「Active Directoryの証明書を発行する」「Active Directoryに重複する証明書がある場合、自動的に再登録しない」の両方にチェックを付けます。このチェックによって、ADと連携して証明書を自動配布してくれるようになります。


  8. 次に「セキュリティ」タブをクリックします。Domain Computersグループが読み取り、および自動登録できるように、「読み取り」と「自動登録」にチェックをつけます。


  9. OKボタンをクリックします。これで、コンピュータ証明書の証明書テンプレートが作成されました。


  10. 続いて、証明書テンプレートを発行して、自動発行を有効化します。証明機関ツールの証明書テンプレートで、右クリック → 新規作成 → 発行する証明書テンプレートをクリックします。


  11. 作成したコンピュータ証明書テンプレートを選択し、OKボタンをクリックします。


  12. テンプレート一覧にコンピュータ証明書テンプレートが表示されたことを確認します。


ユーザ証明書

コンピュータ証明書と基本的に同様の手順でユーザ証明書テンプレートを作成できます。ただし、テンプレート作成時にサブジェクト名の設定に気を付けてください。

  1. サーバマネージャを起動します。
  2. ツール → 証明機関(Certificate Authority)をクリックします。


  3. 証明機関ツール上で、ルートCAを展開します。
  4. 「証明書テンプレート」を右クリックして「管理」を選択します。


  5. 証明書テンプレートコンソールが開きます。テンプレートの一覧から「ユーザ(User)」を右クリックし、「テンプレートの複製」をクリックします。


  6. 新しいテンプレートのプロパティが開きます。
  7. 「全般」タブをクリックします。テンプレートに名前(例:ユーザ証明書)を付けます。「Active Directoryの証明書を発行する」「Active Directoryに重複する証明書がある場合、自動的に再登録しない」の両方にチェックを付けます。


  8. 次に「セキュリティ」タブをクリックします。Domain Usersグループが読み取り、および自動登録できるように、「読み取り」と「自動登録」にチェックをつけます。


  9. 次に「サブジェクト名」タブをクリックします。デフォルトでは、ADユーザがメールアドレスを持たない場合にエラーが発生し、証明書が発行されません。必要に応じて、電子メール名を含めないように設定します。


  10. OKボタンをクリックします。これで、ユーザ証明書の証明書テンプレートが作成されました。


  11. 続いて、証明書テンプレートを発行して、自動発行を有効化します。証明機関ツールの証明書テンプレートで、右クリック → 新規作成 → 発行する証明書テンプレートをクリックします。


  12. 作成したユーザ証明書テンプレートを選択し、OKボタンをクリックします。


  13. テンプレート一覧にコンピュータ証明書テンプレートが表示されたことを確認します。


動作確認

後は、gpupdate /forceコマンドでグループポリシーを強制的に更新するか、更新されるのを待つだけです。発行された証明書は証明機関ツールの「発行済み証明書」で確認できます。

以下は、ユーザ証明書の例です。


おわりに

今回は、ADCSを用いてコンピュータ証明書およびユーザ証明書を自動発行する手順を説明しました。手間はかかりますが、これらの証明書をVPN接続認証やPCへのログイン認証で利用する場合には、この自動発行の設定は必須となります。

ADCSはその名の通り、ADと連携することで大きな恩恵を受けられるということが分かりました。