【AD CS】ネットワークデバイス登録サービス(NDES)とは?NDES 構築手順を詳説!

Active Directory 証明書サービスでは、ネットワークデバイス登録サービス(NDES)という機能があります。
この機能により、ルーターなどのネットワーク機器に証明書が登録できるようになります。

ルーターでは IPSec や SSLVPN などで VPN 環境を構築する際に、証明書の登録が必要となります。
その際に NDES サーバーがルーターの代理で、証明機関に証明書の発行要求を行います。
NDES サーバーを用意することで、ルーター等のネットワーク機器への証明書の登録が容易となります。

今回は、ネットワークデバイス登録サービス(NDES)の機能の概要と構築手順を紹介します。

 

ネットワークデバイス登録サービス(NDES)の概要

ネットワークデバイス登録(NDES)とは、ネットワーク機器への証明書の登録に利用される機能です。
NDES を利用することで、ネットワーク機器への証明書の登録が簡易に行えることができます。

NDES では SCEP と呼ばれるプロトコルを利用して証明書の登録を行います。
SCEP(Simple Certificate Enrollment Protocol)とは、証明機関から機器に証明書を発行する手順を定めたプロトコルです。
NDES サーバーを構築することにより多数の機器への証明書の発行を自動化、効率化することができます。

NDES サーバーを利用して証明書を発行する時の流れは以下の通りとなります。

ルーターは直接 CA に証明書の要求を行うことはできないため、NDES サーバーに要求を送信します。
NDES サーバーはルーターからの証明書の発行要求を証明機関(CA)に転送します。
CA は証明書を発行して NDES サーバーに送信し、NDES サーバーも発行された証明書をルーターに転送します。
この時のルーターと NDES サーバーとの証明書の発行に関する通信には SCEP が利用されています。

 

構成

NDES サーバーと証明機関(エンタープライズ CA)の同居の構成はおすすめしません。
証明機関とは別に、NDES サーバーを構築する Windows Server を用意してください。

証明機関(CA):Windows Server 2016 (エンタープライズ CA)
NDES サーバー:Windows Server 2016

どちらも同一ドメインに所属していることをご確認ください。

 

事前確認

NDES サーバーの要件として、以下の 2 つの証明書が登録されている必要があります。

  • CEP 暗号化証明書
  • Exchange 登録エージェント証明書

NDES 構築の前に、エンタープライズ CA にて上記の証明書を発行できるように、証明書の発行に利用される証明書テンプレートが公開されていることを確認してください

  • CEP 暗号化
  • Exchange 登録エージェント(オフライン要求)

 

 

NDES アカウントの作成

NDES サービス アカウント用の AD ユーザー アカウントを作成します。
NDES サービス アカウントを作成した後に、IIS_IUSRS グループに登録します。

1) 任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) [Windows 管理ツール] より、[Active Directory ユーザーとコンピューター] を開きます。

3) NDES サービス アカウント用に、新規ユーザー アカウントを作成します。

※上記の図の例では ndes というユーザー アカウントを新規に作成しています。

4) NDES サーバーを構成するドメイン メンバーに管理者権限をもつユーザーでログオンします。

5) [ファイル名を指定して実行] を開き、lusrmgr.msc と入力して [OK] をクリックします。

6) [ローカル ユーザーとグループ(ローカル)] にて、画面の左ペインにて [グループ] を選択します。

7) IIS_IUSRS をダブルクリックしてプロパティ画面を開きます。

8) [所属するメンバー] の項目にて [追加] をクリックし、新規作成したサービス アカウントを追加します。

 

9) [適用]、[OK] をクリックします。

 

NDES サーバー構築

1) メンバー サーバーにローカルの管理者権限をもつユーザーでログオンします。

2) [サーバー マネージャー] を開き、[管理] より [役割と機能の追加] をクリックします。

 

3) [開始する前に] にて、[次へ] をクリックします。

 

4) [インストールの種類の選択] にて、[役割ベースまたは機能ベースのインストール] を選択し、[次へ] をクリックします。

 

5) [対象サーバーの選択] にて、自身のサーバーが選択されていることを確認し、[次へ] をクリックします。

 

6) [サーバーの役割の選択] にて、[Active Directory 証明書サービス] のチェックボックスを有効にします。

 

7) [役割と機能の追加ウィザード] にて、[管理ツールを含める(存在する場合)] のチェックボックスが有効になっていることを確認し、[機能の追加] をクリックします。

 

8) [役割の選択] にて [Active Directory 証明書サービス] のチェックボックスが有効になっていることを確認して [次へ] をクリックします。

 

9) [機能の選択] にて、そのまま [次へ] をクリックします。

 

10) [Active Directory 証明書サービス] にて、そのまま [次へ] をクリックします。

 

11) [役割サービスの選択] にて、[証明機関] のチェックボックスを OFF にし、[ネットワーク デバイス登録サービス] のチェックボックスをクリックします。

 

12) [役割サービスの選択] にて [ネットワーク デバイス登録サービス] のチェックボックスが有効になっていることを確認して [次へ] をクリックします。

 

13) [Web サーバーの役割 (IIS)] にて、そのまま [次へ] をクリックします。

 

14) [役割サービスの選択] にて、そのまま [次へ] をクリックします。

 

15) [インストール オプションの確認] にて、[インストール] をクリックします。

 

16) [インストールの進捗状況] にて、[対象サーバーに Active Directory 証明書サービスを構成する] をクリックします。

 

17) [資格情報] にて、[資格情報] にログオン ユーザーの資格情報が補完されていることを確認して [次へ] をクリックします。

 

18) [役割サービス] にて、[ネットワーク デバイス登録サービス] のチェックボックスを有効にして [次へ] をクリックします。

 

19) [NDES のサービス アカウント] にて、[サービス アカウントを指定 (推奨)] を選択して [選択] をクリックします。
[AD CS の構成] にて、新規作成したサービス アカウントのユーザー名、パスワードを [OK] をクリックします。

 

20) [サービス アカウントを指定 (推奨)] の項目に入力したアカウントが補完されていることを確認し、[次へ] をクリックします。

 

21) [NDES 用の CA] にて、[選択] をクリックして [ターゲット CA] にエンタープライズ CA の情報が補完されたことを確認し、[次へ] をクリックします。

 

22) [RA 情報] にて、必要な設定を行い、[次へ] をクリックします。

 

23) [NDES の暗号化] にて、既定の設定のまま [次へ] をクリックします。

 

24) [確認] にて、ウィザードで指定した設定となっていることを確認し [構成] をクリックします。

 

25) [結果] にて、”構成に成功しました” と表示されていることを確認し [閉じる] をクリックします。

 

 

NDES での証明書テンプレートの指定

NDES が証明書署名要求(CSR)を転送する際に、発行に使用する証明書テンプレートの情報はレジストリで管理されています。
NDES での証明書テンプレートの設定は以下のレジストリです。

 

レジストリ キー:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP

 

キー使用法

証明書テンプレート名(既定)

SignatureTemplate

デジタル署名のみ

IPSECIntermediateOffline

EncryptionTemplate

キー暗号化のみ

IPSECIntermediateOffline

GeneralPurposeTemplate

デジタル署名、キー暗号化

IPSECIntermediateOffline

 

 

CSR に定義してあるキー使用法により、どの証明書テンプレートが使用されるかが決まります。

NDES での証明書の発行に使用する証明書テンプレートを変更する場合は、レジストリを変更します。

NDES で発行される証明書は、このレジストリに設定されている証明書テンプレートが使用されます。
そのため、エンタープライズ CA 側でこのレジストリで設定している証明書テンプレートを公開しておきます。

上図の通り、すべてのキー使用法ののパターンにおいて、証明書の発行に使用される証明書テンプレートは「IPSec (オフライン要求)」(IPSECIntermediateOffline) です。

 

 

NDES の動作確認

NDES サーバーの動作確認として、NDES の証明書の発行に利用される各 URL を確認します。
確認する対象の URL は、以下の 2 つです。
NDES サーバー上で IE や Edge などのブラウザを開き、各 URL へアクセスしてください。

[1] 発行要求の接続先 URL
証明書の発行要求を受け付ける URL を確認します。
以下の URL へアクセスして、以下のようなページが表示されることを確認してください。

http://localhost/certsrv/mscep/mscep.dll

 

[2] NDES サーバーの管理 URL
証明書の登録の要求先となる証明機関の CA 証明書や、証明書の登録要求に使用するチャレンジ パスワードの情報を確認できる URL を確認します。
以下の URL へアクセスして、以下のようなページが表示されることを確認してください。

http://localhost/certsrv/mscep_admin/

 

 

Windows 端末で証明書発行の動作テスト

Windows OS の端末が用意できるのであれば、certreq コマンドを利用して NDES の動作テストを行えます。
NDES サーバーの FQDN の名前解決が行えるように、ネットワーク設定を構成しておいてください。

1) 新しいテキスト ドキュメントを作成して、inf 拡張子で任意のファイル名に変更します。

2) inf ファイルを任意のテキストエディタで開き、以下の内容を追加します。

[NewRequest]
Subject = “CN=testcert”
RequestType = SCEP
KeyLength = 2048
KeyUsage = 0xa0

※補足:
RequestType には SCEP を指定します。
KeyUsage は “キー使用法” を指定しますが、0xa0 はデジタル署名(0x80)と暗号化(0x20)の両方となります。
そのため、発行に利用される証明書テンプレートは、GeneralPurposeTemplate のレジストリに定義しているものです。

 

3) 以下のコマンドを実行して、NDES サーバーに証明書に送信する CSR(req ファイル)を作成します。

certreq -v -config <NDES サーバー> -username <ユーザー名> -p <パスワード> -new <inf ファイル> <req ファイル>

C:\>certreq -v -config NDES01.test01.local -username test01\administrator -p p@$$w0rd -new request.inf request.req
SCEP: fd00 -> fd00

ネットワーク デバイス登録サービス
ネットワーク デバイス登録サービス
ネットワーク デバイス登録サービスでは、SCEP (Simple Certificate Enrollment Protocol) を使用してルーターその他のネットワ ーク デバイスの証明書を取得できます。
ネットワーク デバイスの証明書の登録を完了するには、次の情報が必要です:
CA 証明書の拇印 (ハッシュ値):
4E4ECEDD 12AEF6CB AF9A4F96 F180D476
登録のチャレンジ パスワード:
9E25B9BDD66549FE
このパスワードは 1 回だけ使用でき、60 分で失効します。
登録ごとに新しいチャレンジ パスワードが必要です。この Web ページを更新して、新しいチャレンジ パスワードを取得できます。
詳細については、
http://go.microsoft.com/fwlink/?LinkId=67852
ネットワーク デバイス登録サービスの使用に関するページ
を参照してください。

トランザクション ID: aeaf9e0c1564355330d9b9294c548bde3452c8d5
キー ID: aef75c401335d4fe40125142c3f65fe0fbfa0096

CertReq: 要求が作成されました

C:\>

 

3) 以下のコマンドを実行して、NDES サーバーに CSR(req ファイル)を送信して、発行された証明書(cer ファイル)を受領します。

   certreq -v -config <NDES サーバー> -submit <req ファイル> <cer ファイル>

C:\>certreq -v -config NDES01.test01.local -submit request.req scep.cer
PkiStatus: SCEPDispositionSuccess(0)

C:\>

 

4) 以下のコマンドを実行して、発行された証明書を [個人] の証明書ストアに登録します。

    certreq -accept <cer ファイル>

C:\>certreq -accept scep.cer
PkiStatus: SCEPDispositionSuccess(0)
Status.Text = 発行されています
EnrollStatus: Enrolled(1)
LastStatus = 0x00000000: この操作を正しく終了しました。 0x0 (WIN32: 0)
拇印 = 26c0f3141bc1d942226631dcae492b2ed37f5bd4

C:\>

 

[ファイル名を指定して実行] を開き、certmgr.msc を開き、証明書が登録されていることを確認します。
“IPSec (オフライン要求)” の証明書テンプレートで発行された証明書が登録されています。