NDES サーバーを構築すると、以下の 2 つの証明書が作成されます。
- CEP 暗号化証明書
- Exchange 登録エージェント証明書
上記の証明書の有効期間が切れると、NDES サーバーとして動作できません。
そのため、証明書の有効期間が切れる前に、事前に証明書を更新することをおすすめします。
今回は NDES 用の各証明書の更新手順を紹介します。
NDES サーバーの証明書の有効期間切れ
NDES サーバーの構成において、CEP 暗号化証明書と Exchange 登録エージェント証明書が登録されています。
CEP 暗号化証明書は “暗号化用証明書” で、Exchange 登録エージェント証明書は “署名用証明書” となります。
これらの証明書の有効期間は 2 年となっていますが、有効期限が切れると NDES サーバーが利用できなくなります。
CEP 暗号化証明書と Exchange 登録エージェント証明書の有効期間が過ぎると、NDES サーバーのアプリケーション イベント ログにイベント ID 2、10 のエラー ログ(ソース:Microsoft-Windows-NetworkDeviceEnrollmentService)が記録されるようになります。
ソース: Microsoft-Windows-NetworkDeviceEnrollmentService
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 2
タスクのカテゴリ: なし
レベル: エラー
キーワード:
ユーザー: <ユーザー SID>
コンピューター: <コンピューター名>
説明:
ネットワーク デバイス登録サービス (0x80070057) を起動できません。パラメーターが間違っています。
ソース: Microsoft-Windows-NetworkDeviceEnrollmentService
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 10
タスクのカテゴリ: なし
レベル: エラー
キーワード:
ユーザー: <ユーザー SID>
コンピューター: <コンピューター名>
説明:
ネットワーク デバイス登録サービスは、必要な証明書 (0x80070057) の 1 つを取得できません。 パラメーターが間違っています。
NDES サーバーのコンピューター アカウントの証明書ストアを確認し、証明書の有効期間が切れていたら、各証明書を更新します。

[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/