どうも、Tです。
急遽、証明書機関が必要になったので、Active Directory証明書サービス(AD CS)を使えるようにしてみました。
目次
やりたいこと
- AD CSをエンタープライズCAとして構築する
エンタープライズCAとスタンドアロンCAの違いは、下記によくまとめられています。
環境
- Windows Server2019(ホスト名testadcs)※このホストはADではありません。
- ADドメイン参加済み
- 作業は、ドメインAdministratorで実施
Active Directory 証明書サービスインストール
Active Directory証明書サービス(AD CS)をインストールしていきます。
サーバーマネージャーの「管理」->「役割と機能の追加」をクリックします。
「役割ベースまたは機能ベースのインストール」を選択し「次へ」をクリックします。
インストールするサーバーが正しいことを確認して、「次へ」をクリックします。
「Active Directory証明書サービス」をクリックします。
「機能の追加」をクリックします。
「Active Directory証明書サービス」にチェックが付いたことを確認し、「次へ」をクリックします。
「次へ」をクリックします。
「次へ」をクリックします。
「証明機関」をチェックし、「次へ」をクリックします。
「インストール」をクリックします。
「閉じる」をクリックします。
AD CSのインストールが完了しました。
Active Directory 証明書サービスを構成する(AD CSの構成)
AD CSの構成します。
サーバーマネージャーから「通知」->「対象サーバーにActive Directory証明書サービスを構成する」をクリックします。
資格情報にEnterprise Adminsグループ所属のADドメインユーザーを指定して、「次へ」をクリックします。
「証明機関」にチェックして、「次へ」をクリックします。
「エンタープライズCA」を選択し「次へ」をクリックします。
「ルートCA」を選択し「次へ」をクリックします。
「新しい秘密キーを作成する」を選択し、「次へ」をクリックします。
暗号化のアルゴリズムを選択します。デフォルトのまま「次へ」をクリックします。
デフォルトのまま「次へ」をクリックします。
CAとしての有効期限を入力します。今後作成する証明書は、この年数以上のものは作成できません。検証環境なので長めの20年を入力して「次へ」をクリックします。
※デフォルトでは5年になっています。
「次へ」をクリックします。
「構成」をクリックします。
「閉じる」をクリックします。
AD CSの構成が完了しました。
証明機関「certsv」コンソール画面の確認
AD CSの管理画面を確認します。
サーバーマネージャーから「ツール」->「証明機関」をクリックします。
管理画面が表示されます。
CAで、証明書の発行管理(保留中の要求→証明書の発行→証明書の失効)が行えます。発行した証明書がないので、現在はなにもありません。
証明書の確認方法
今後、証明書をWindowsコンピュータに配布した時の、証明書の確認方法です。
現在は証明書を配布していないので、AD CS自身のCA用に使用されている証明書を確認してみます。
ファイル名を指定して実行で「mmc」を入力して「OK」をクリックします。
「ファイル」->「スナップインの追加と削除」をクリックします。
「証明書」を選択して「追加」をクリックします。
「コンピューターアカウント」を選択して「次へ」をクリックします。
「ローカルコンピュータ」を選択して「完了」をクリックします。
「OK」をクリックします。
証明書フォルダの中に証明書があります。構成時に指定した20年で証明書が作成されています。
証明書の有効期限延長
AD CSで発行する証明書は、CAの有効期限の20年以下の期限で作成できますが、証明書発行する際に年数を指定しても、2年以上の証明書が発行できません。
レジストリで定義されている有効期間は、スタンドアロン CA および CA によって発行Enterprise影響します。 一Enterprise、既定のレジストリ設定は 2 年です。 スタンドアロンの CAs の場合、既定のレジストリ設定は 1 年です。 スタンドアロン CA によって発行される証明書の有効期間は、この記事で後述するレジストリ エントリによって決まります。 この値は、CA によって発行されるすべての証明書に適用されます。
2年の上限を撤廃するためにレジストリを編集します。
「ファイル名を指定して実行」に「regedit」を入力し「OK」をクリックします。
下記の位置へ移動します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CertSvc\Configuration\
「ValidityPeriodUnits」をダブルクリックします。
値を変更します。今回は長めの10年に入力し、「OK」をクリックします。
レジストリの値を反映させるために、certsvcサービスを再起動します。
restart-service certsvc
これで既定2年以上の証明書が発行できるようになりました。
ここもポイント(2021年8月18追記)
AD CSのエンタープライズCAを構築すると、グループポリシーを利用して証明書を自動配布することが可能ですが、グループポリシーを設定していない状態(AD CS構築直後)から自動配布されるものがあります。ネットにあまり情報がなかったので、記載しておきます。
ドメインコントローラ証明書の自動配布
ADドメインコントローラーだけに対して自動配布される証明書があります。(正確には、AD CSが配布しているわけではなく、ADがWindowsタスクスケジューラで証明書要求をしています。)
ADドメインコントローラーの個人証明書ストアを見ると証明書が作成されます(即時作成さされません。詳細は後述。)。これは、AD CSのデフォルトで用意されているテンプレート「ドメインコントローラー」の証明書になります。有効期限が1年ですが、これも後述の理由により自動更新されます。
AD CSのルート証明書の自動配布
エンタープライズCAで構築した場合、ADドメインに参加しているクライアント(ADサーバーなども含む)に対してルート証明書を配布します。
すべてのドメイン メンバー コンピューターは、自動登録の構成を使用せず、エンタープライズ ルート CA の証明書を自動的に受け取ります。 この証明書は、サーバー証明書を構成し、自動登録を使用して、配布よりも異なります。 この CA によって発行される証明書は信頼できるように、すべてのドメイン メンバー コンピューターの信頼されたルート証明機関の証明書ストアに CA の証明書が自動的にインストールします。
信頼されたルート証明機関にAD CSのルート証明書が保存されます。
中間証明機関にもAD CSのルート証明書が保存されます。
CertificateServicesClient
上記2点ができるのは、Windowsタスクスケジューラに登録されているCertificateServicesClientに登録されているタスクによって更新されているようです。
SystemTaskは、システム起動後に8時間おきに確認を行います。
UserTaskは、ログイン後8時間おきに確認を行います。
そのため、AD CS構築後から8時間経過するか再起動するとドメインコントローラ証明書とルート証明書がローカルコンピュータに保存されます。
ドメインコントローラ証明は上記のタスクで有効期限が近づくと証明書の更新が自動的に行われます。
また、理由がよくわかってませんが、ドメインコントローラ証明書は手動で削除しても上記のタスクが起動すると再度生成されます。
ルート証明書は、手動削除すると上記タスクが実行されても再生成されないため、手動でのインポートが必要になります。
参考
まとめ
使い方はゆくゆく・・・・まとめますかね・・・・。
このまま証明機関Web登録をセットアップする方法をまとめました。