ADCSで大量の証明書を発行する方法【PowerShell対応】
はじめに
弊社にてActiveDirectory証明書サービス(ADCS)を扱う機会がありました。
その際、多数のクライアント証明書を発行する必要が生じたため、クライアント証明書を作成・発行するためのコマンドについて調査を行いました。
その結果を整理してまとめています。
Active Directory Certificate Services(AD CS/ADCS)は、WindowsServerの役割としてPKI証明書の発行および管理を提供する機能です。
本記事では、ADCS環境においてクライアント証明書を発行する際に利用できるcertreqコマンド(.infファイルからの証明書要求作成、CAへの要求送信、応答の取得およびインストールなど)を用い、PowerShellベースで大量発行を行うための一連の手順を解説します。
※本手順を本番環境へ適用する際は、CA構成や証明書テンプレート、運用ポリシーなどの環境差分を踏まえ、事前検証を行うことを推奨します。
【本記事の想定対象】
・VPNや無線LAN認証用途で、クライアント証明書を一括発行したい場合
・手動での証明書発行・配布では運用が難しくなっている環境
・スタンドアロン CA構成での証明書発行手順を確認したい場合
ADCS証明書発行
本記事では、スタンドアロン CA構成を前提としています。
CAの構築手順や設計については環境要件により異なるため、本記事では割愛します。
「YLP」を任意の値に置換すればとりあえず証明書作成までできます。
検証後に命名規則を変更するのがおすすめです。
★本記事ではPowerShellからの実行を前提としています。
1.CSRのRequestファイル作成
手作業
ファイル名+拡張子:request_YLP.inf
==ここから==
[NewRequest]
Subject = “C=JP,ST=Tokyo,L=Chuo-ku,O=tsukiji,CN=YLP”
Exportable = TRUE
ExportableEncrypted = TRUE
KeyLength = 2048
HashAlgorithm = sha256
==ここまで==
2.CSRファイルの作成
①「request_YLP.inf」をADCSの任意のフォルダにコピーする
②コピー先のフォルダをPowerShellにて開く
③コマンド実行
certreq -new -f request_YLP.inf request_YLP.req
3.証明書要求の実施
certreq -config WIN-ADCS\YLP-CA –submit request_YLP.req request_YLP.cer
※CAの設定によっては、証明書要求は即時発行されず、スタンドアロン CA構成では既定で「保留」状態となり、管理者による承認が必要となる場合があります。
4.証明書要求の承認
certsrvにて全選択し証明書発行が可能。
保留中の要求→証明書要求した「要求ID」を右クリックし、証明書の「発行」をクリックする。

「発行」された証明書の確認

5.証明機関が証明書を発行した後に証明書を取得する
certreq -config WIN-ADCS\YLP-CA -retrieve <数字> clientcert_YLP.cer
「<数字>」は「発行した証明書」の要求IDに置き換える。
6.発行された証明書の受け取り
certreq -accept clientcert_YLP.cer
7.Thumbprint(サムプリント:拇印)確認
Get-ChildItem -path Cert:\CurrentUser\My
以下結果が表示されるため「Thumbprint」の値をコピーする。
~~~
PS C:\Users\Administrator> Get-ChildItem -path Cert:\CurrentUser\My
PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My
Thumbprint Subject
———- ——-
F355E499C9000000000000000000BFCC48706164 CN=YLP, O=tsukiji, L=Chuo-ku, S=Tokyo, C=JP
~~~
8.PFX形式でエクスポート
certutil-exportPFX -p “12345678” -user my “F355E499C9000000000000000000BFCC48706164” YLP.pfx
12345678=パスワード
F355E499C9000000000000000000BFCC48706164=Thumbprint
■端末側での操作
1.ルート証明書のインストール
certutil -user -addstore Root cacert-YLP-CA.cer
2.クライアント証明書のインストール
YLP.pfxをダブルクリックし端末にインポートする