【AD CS】NDES サーバーの証明書の更新手順について

NDES サーバーを構築すると、以下の 2 つの証明書が作成されます。

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

上記の証明書の有効期間が切れると、NDES サーバーとして動作できません。
そのため、証明書の有効期間が切れる前に、事前に証明書を更新することをおすすめします。

今回は NDES 用の各証明書の更新手順を紹介します。

 

NDES サーバーの証明書の有効期間切れ

NDES サーバーの構成において、CEP 暗号化証明書Exchange 登録エージェント証明書が登録されています。
CEP 暗号化証明書は “暗号化用証明書” で、Exchange 登録エージェント証明書は “署名用証明書” となります。
これらの証明書の有効期間は 2 年となっていますが、有効期限が切れると NDES サーバーが利用できなくなります。

CEP 暗号化証明書と Exchange 登録エージェント証明書の有効期間が過ぎると、NDES サーバーのアプリケーション イベント ログにイベント ID 210 のエラー ログ(ソース:Microsoft-Windows-NetworkDeviceEnrollmentService)が記録されるようになります。

ログの名前: Application
ソース: Microsoft-Windows-NetworkDeviceEnrollmentService
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 2
タスクのカテゴリ: なし
レベル: エラー
キーワード:
ユーザー: <ユーザー SID>
コンピューター: <コンピューター名>
説明:
ネットワーク デバイス登録サービス (0x80070057) を起動できません。パラメーターが間違っています。
ログの名前: Application
ソース: Microsoft-Windows-NetworkDeviceEnrollmentService
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 10
タスクのカテゴリ: なし
レベル: エラー
キーワード:
ユーザー: <ユーザー SID>
コンピューター: <コンピューター名>
説明:
ネットワーク デバイス登録サービスは、必要な証明書 (0x80070057) の 1 つを取得できません。 パラメーターが間違っています。
0x80070057 (E_INVALIDARG) のエラー コードのイベント ID 2、10 は、CEP 暗号化証明書と Exchange 登録エージェント証明書の有効期間が切れていたり、失効されている等が要因で、証明書が利用できないことを警告したエラーとなります。
NDES サーバーのコンピューター アカウントの証明書ストアを確認し、証明書の有効期間が切れていたら、各証明書を更新します。
CEP 暗号化証明書と Exchange 登録エージェント証明書の更新手順は以下の通りです。
 

[1] 既存の証明書の保存

証明書の更新前に、既存の CEP 暗号化証明書と Exchange 登録エージェント証明書のバックアップを採取します。
また、作業前に NDES サービス アカウント名も確認します。

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

2) [ファイル名を指定して実行] より certlm.msc を開きます。

3) [発行先] が MSCEP-RA を含む証明書のプロパティを開き、[ファイルのコピー] – [次へ] をクリックします。

4) [いいえ、秘密キーをエクスポートしません] にチェックを入れ、[次へ] をクリックします。

5) [DER encoded binary X.509] にチェックを入れて、[次へ] をクリックします。

6) [参照] よりファイルを保存します。

7) 証明書を右クリックし、[すべてのタスク] – [秘密キーの管理] から NDES のサービスアカウント名を控えておきます

8) 同様の手順で二つの証明書を保存します。

9) 証明書の保存が終わったら、証明書を右クリックして [削除] します。

 

[2] 署名用証明書の作成

まず署名用証明書である Exchange 登録エージェント証明書を更新します。

1) 新しいキスト ファイルを作成し、以下の通り、CSR の定義ファイルを作成します。
ファイル名は “exchange.inf” に変更してください。

[NewRequest]
Subject = “CN=NDES01-MSCEP-RA,C=JP”
Exportable = TRUE
KeyLength = 1024
KeySpec = 2
KeyUsage = 0x80
MachineKeySet = TRUE
ProviderName = “Microsoft Enhanced Cryptographic Provider v1.0”
ProviderType = 1

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.4.1.311.20.2.1

[RequestAttributes]
CertificateTemplate = EnrollmentAgentOffline

 

2) 管理者権限でコマンド プロンプトを開き、以下のコマンドを実行して CSR を作成します。

certreq -new -f exchange.inf exchange.req

※「コンピューター コンテキストのテンプレートがユーザー コンテキストに競合しています。」というポップアップが出力されたら、[OK] をクリックします。

 

3) コマンド プロンプトから以下のコマンドを実行して、CSR を提出して発行された証明書を受領します。

certreq -submit exchange.req exchange.cer

 

4) コマンド プロンプトから以下のコマンドを実行すると、証明書が更新されます。

certreq -Accept -machine -f exchange.cer

 

5) [ファイル名を指定して実行] から certlm.msc を開きます。

6) テンプレートが [Exchange 登録エージェント (オフライン)] の証明書を右クリックし、[すべてのタスク] – [秘密キーの管理] をクリックします。

7) [追加] をクリックし、NDES のサービスアカウント名を入力し、フルコントロールの [許可] をクリックし、[OK] をクリックします。

 

 

[3] 暗号化用証明書の新規作成

暗号化用証明書である CEP 暗号化証明書を更新します。

1) 新しいキスト ファイルを作成し、以下の通り、CSR の定義ファイルを作成します。
ファイル名は “cep.inf” に変更してください。

[NewRequest]
Subject = “CN=NDES01-MSCEP-RA,C=JP”
Exportable = TRUE
KeyLength = 1024
KeySpec = 1
KeyUsage = 0x20
MachineKeySet = TRUE
ProviderName = “Microsoft RSA Schannel Cryptographic Provider”
ProviderType = 12

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.4.1.311.20.2.1

[RequestAttributes]
CertificateTemplate = CEPEncryption

 

2) 管理者権限でコマンド プロンプトを開き、以下のコマンドを実行して CSR を作成します。

certreq -new -f cep.inf cep.req

 

3) コマンド プロンプトから以下のコマンドを実行して、CSR を提出して発行された証明書を受領します。

certreq -submit cep.req cep.cer

 

4) コマンド プロンプトから以下のコマンドを実行すると、証明書が更新されます。

certreq -accept -machine -f cep.cer

 

5) [ファイル名を指定して実行] から certlm.msc を開きます。

6) テンプレートが [CEP 暗号化] の証明書を右クリックし、[すべてのタスク] – [秘密キーの管理] をクリックします。

7) [追加] をクリックし、NDES のサービスアカウント名を入力し、フルコントロールの [許可] をクリックし、[OK] をクリックします。

 

 

[4] IIS サービスの再起動

IIS サービスを再起動して、更新情報を反映させます。

1) 管理者権限でコマンド プロンプトを開きます。

2) 以下のコマンドを実行し、IIS サービスを再起動します。

  iisreset

 

 

以上で各証明書の更新作業が完了です。
更新作業が完了したら、NDES サーバーから IE を開き、以下の URL へアクセスして、管理画面が正常に動作されるかご確認ください。

http://localhost/certsrv/mscep_admin/