この詳細な記事では、Microsoft Windows エンタープライズ CA の使用を停止する方法と、Active Directory ディレクトリ サービスからすべての関連オブジェクトを削除する方法について説明します。
適用対象: Windows Server
元の KB 番号: 889250
まとめ
証明機関 (CA) をアンインストールしても、CA によって発行された証明書は通常、まだ未処理です。 未処理の証明書がさまざまな公開キー インフラストラクチャ クライアント コンピューターによって処理される場合、検証は失敗し、それらの証明書は使用されません。
この記事では、未処理の証明書を取り消す方法と、CA を正常にアンインストールするために必要なその他のさまざまなタスクを完了する方法について説明します。 さらに、この記事では、ドメインから CA オブジェクトを削除するために使用できるいくつかのユーティリティについて説明します。
手順 1 - エンタープライズ CA によって発行されたすべてのアクティブな証明書を取り消す
- Start を選択し、Administrative Tools をポイントして、証明書機関を選択します。
- CA を展開し、[発行済み証明書] フォルダーを選択します。
- 右側のウィンドウで、発行された証明書のいずれかを選択し、Ctrl キーを押しながら A キーを押して、発行されたすべての証明書を選択します。
- 選択した証明書を右クリックし、[ すべてのタスク] を選択し、[ Revoke 証明書を選択します。
- Certificate 失効 ダイアログ ボックスで、失効の理由として Cease of Operation を選択し、OK を選択します。
手順 2 - CRL の公開間隔を長くする
- 証明機関 Microsoft 管理コンソール (MMC) スナップインで、[ 証明書 フォルダーを右クリックし、 Properties を選択します。
- [ CRL パブリケーション間隔 ボックスに適切な長い値を入力し、 OKを選択します。
Note
証明書失効リスト (CRL) の有効期間は、失効した証明書の有効期間より長くする必要があります。
手順 3 - 新しい CRL を発行する
- 証明機関 MMC スナップインで、[失効した証明書] フォルダーを右クリックします。
- [すべてのタスクを選択し、Publish を選択します。
- [CRL の発行] ダイアログ ボックスで、[新しい CRL]<
選択し OK 選択。
手順 4 - 保留中の要求を拒否する
既定では、エンタープライズ CA は証明書要求を格納しません。 ただし、管理者はこの既定の動作を変更できます。 保留中の証明書要求を拒否するには、次の手順に従います。
- 証明機関 MMC スナップインで、[保留中の要求] フォルダーを選択します。
- 右側のウィンドウで、保留中の要求のいずれかを選択し、Ctrl キーを押しながら A キーを押して、保留中のすべての証明書を選択します。
- 選択した要求を右クリックし、[ すべてのタスク] を選択し、[ 要求を選択します。
手順 5 - サーバーから証明書サービスをアンインストールする
Certificate Services を停止するには、 Start を選択し、 Run を選択し、「 cmd」と入力して、 OK を選択します。
コマンド プロンプトで、「 certutil -shutdown」と入力し、Enter キーを押します。
コマンド プロンプトで、「 certutil -getreg DBDirectory」と入力し、Enter キーを押します。 出力の DBLogDirectory 値に注意してください。 例えば次が挙げられます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\DBDirectory: DBDirectory REG_SZ = C:\Windows\system32\CertLog CertUtil: -getreg command completed successfully.
コマンド プロンプトで、「 certutil -getreg DBLogDirectory」と入力し、Enter キーを押します。 出力の DBLogDirectory 値に注意してください。 例えば次が挙げられます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\DBLogDirectory: DBLogDirectory REG_SZ = C:\Windows\system32\CertLog CertUtil: -getreg command completed successfully.
コマンド プロンプトで、「 certutil -getreg CA\CSP\Provider」と入力し、Enter キーを押します。 出力の Provider 値に注意してください。 例えば次が挙げられます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\Fabrikam Root CA1 G2\csp: Provider REG_SZ = Microsoft Software Key Storage Provider CertUtil: -getreg command completed successfully.
値が Microsoft Strong Cryptographic Provider または Microsoft Enhanced Cryptographic Provider v1.0 の場合は、「 CertUtil -Key 」と入力し、Enter キーを押します。
値が Microsoft ソフトウェア キー ストレージ プロバイダー場合は、「 CertUtil -CSP KSP -Key を入力して Enter キーを押します。
値が別の値である場合は、「 CertUtil -CSP <PROVIDER NAME> -Key キーを押して Enter キーを押します。このコマンドは、インストールされているすべての暗号化サービス プロバイダー (CSP) と、各プロバイダーに関連付けられているキー ストアの名前を表示します。 一覧表示されているキー ストアの中に、CA の名前が表示されます。 次の例に示すように、名前が複数回表示されます。
(1)Microsoft Base Cryptographic Provider v1.0:
1a3b2f44-2540-408b-8867-51bd6b6ed413
MS IIS DCOM ClientSYSTEMS-1-5-18
MS IIS DCOM サーバー
Windows2000 Enterprise Root CA
MS IIS DCOM ClientAdministratorS-1-5-21-436374069-839522115-1060284298-500afd1bc0a-a93c-4a31-8056-c0b9ca632896
Microsoft インターネット インフォメーション サーバー
NetMon
MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500(5)Microsoft Enhanced Cryptographic Provider v1.0:
1a3b2f44-2540-408b-8867-51bd6b6ed413
MS IIS DCOM ClientSYSTEMS-1-5-18
MS IIS DCOM サーバー
Windows2000 Enterprise Root CA
MS IIS DCOM ClientAdministratorS-1-5-21-436374069-839522115-1060284298-500afd1bc0a-a93c-4a31-8056-c0b9ca632896
Microsoft インターネット インフォメーション サーバー
NetMon
MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500CA に関連付けられている秘密キーを削除します。 これを行うには、コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
CA CSP の値が Microsoft Strong Cryptographic Provider または Microsoft Enhanced Cryptographic Provider v1.0 の場合は、次のコマンドを入力し、Enter キーを押します。
certutil -delkey CertificateAuthorityName
CA CSP の値が Microsoft ソフトウェア キー ストレージ プロバイダー場合は、次のコマンドを入力し、Enter キーを押します。
certutil -CSP KSP -delkey CertificateAuthorityName
CA CSP の値が他の値である場合は、次のコマンドを入力し、Enter キーを押します。
certutil -CSP \<PROVIDER NAME\> -delkey CertificateAuthorityName
Note
CA 名にスペースが含まれている場合は、名前を引用符で囲みます。 CA に複数のキーがある場合は、キーごとに上記のコマンドを実行する必要があります。
この例では、証明機関の名前は Windows2000 Enterprise Root CAです。 そのため、この例のコマンド ラインは次のようになります。
certutil -delkey "Windows2000 Enterprise Root CA"
キー ストアをもう一度一覧表示して、CA の秘密キーが削除されたことを確認します。
CA の秘密キーを削除した後、証明書サービスをアンインストールします。 これを行うには、実行している Windows Server のバージョンに応じて、次の手順に従います。
エンタープライズ CA をアンインストールする場合は、Enterprise Admins のメンバーシップまたはそれに相当するものが、この手順を完了するために最低限必要です。 詳細については、「 ロールベースの管理の実装」を参照してください。
CA をアンインストールするには、次の手順に従います。
- Start を選択し、Administrative Tools をポイントして、サーバー マネージャーを選択します。
- ロールの概要で、[ロールの削除] 選択して役割の削除ウィザードを起動し、[次へ] を選択。
- [Active Directory 証明書サービス] チェック ボックスをオフにし、[次へを選択します。
- Confirm の削除オプションページで、情報を確認し、Remove を選択します。
- Certification Authority Web Enrollment ロールが構成され、実行されていて、アンインストール プロセスを続行する前にこのロールのアンインストールを求めるメッセージが表示された場合は、OKを選択し、このロールをアンインストールしてから、上記の手順を繰り返します。
- 役割の削除ウィザードが完了したら、サーバーを再起動します。 これでアンインストール プロセスが完了します。
複数の Active Directory 証明書サービス (AD CS) の役割サービスが 1 台のサーバーにインストールされている場合、手順は若干異なります。 CA をアンインストールし、他の AD CS 役割サービスを保持するには、次の手順に従います。
Note
この手順を完了するには、CA をインストールしたユーザーと同じアクセス許可でログオンする必要があります。 エンタープライズ CA をアンインストールする場合は、Enterprise Admins のメンバーシップまたはそれに相当するものが、この手順を完了するために最低限必要です。 詳細については、「 ロールベースの管理の実装」を参照してください。
- Start を選択し、Administrative Tools をポイントして、サーバー マネージャーを選択します。
- [ ロールの概要で、 Active Directory 証明書サービスを選択します。
- ロール サービスで、[ロール サービスの削除] 選択。
- [証明書機関] チェック ボックスをオフにし、[次へを選択します。
- Confirm の削除オプションページで、情報を確認し、Remove を選択します。
- IIS が実行されていて、アンインストール プロセスを続行する前にサービスを停止するように求められた場合は、 OK を選択します。
- 役割の削除ウィザードが完了したら、サーバーを再起動する必要があります。 これでアンインストール プロセスが完了します。
オンライン レスポンダー サービスなどの残りの役割サービスが、アンインストールされた CA のデータを使用するように構成されている場合は、別の CA をサポートするようにこれらのサービスを再構成する必要があります。 CA をアンインストールすると、次の情報がサーバーに残ります。
- CA データベース。
- CA の公開キーと秘密キー。
- 個人用ストア内の CA の証明書。
- 共有フォルダーが AD CS のセットアップ中に指定された場合、共有フォルダー内の CA の証明書。
- 信頼されたルート証明機関ストア内の CA チェーンのルート証明書。
- 中間証明機関ストア内の CA チェーンの中間証明書。
- CA の CRL。
既定では、この情報は、CA をアンインストールしてから再インストールする場合に備えて、サーバーに保持されます。 たとえば、スタンドアロン CA をエンタープライズ CA に変更する場合は、CA をアンインストールして再インストールできます。
手順 6 - Active Directory から CA オブジェクトを削除する
ドメインのメンバーであるサーバーに Microsoft Certificate Services をインストールすると、Active Directory の構成コンテナーに複数のオブジェクトが作成されます。
これらのオブジェクトを次に示します。
certificateAuthority オブジェクト
- CN=AIA、CN=公開キー サービス、CN=Services、CN=Configuration、DC=ForestRootDomain にあります。
- CA の CA 証明書が含まれています。
- 公開された機関情報アクセス (AIA) の場所。
crlDistributionPoint オブジェクト
- CN=ServerName、CN=CDP、CN=公開キー サービス、CN=Services、CN=Configuration、DC=ForestRoot、DC=com にあります。
- CA によって定期的に発行される CRL を格納します。
- 発行された CRL 配布ポイント (CDP) の場所。
certificationAuthority オブジェクト
- CN=証明機関、CN=公開キー サービス、CN=サービス、CN=Configuration、DC=ForestRoot、DC=com にあります。
- CA の CA 証明書が含まれています。
pKIEnrollmentService オブジェクト
- CN=Enrollment Services、CN=Public Key Services、CN=Services、CN=Configuration、DC=ForestRoot、DC=com にあります。
- エンタープライズ CA によって作成されます。
- CA が発行するように構成されている証明書の種類に関する情報が含まれています。 このオブジェクトに対するアクセス許可は、この CA に対して登録できるセキュリティ プリンシパルを制御できます。
CA をアンインストールすると、pKIEnrollmentService オブジェクトのみが削除されます。 これにより、使用停止された CA に対してクライアントが登録を試行できなくなります。 CA によって発行された証明書がまだ未処理である可能性があるため、他のオブジェクトは保持されます。 これらの証明書は、「 手順 1 - エンタープライズ CA によって発行されたすべてのアクティブな証明書を取り消す 」セクションの手順に従って失効する必要があります。
公開キー 基盤 (PKI) クライアント コンピューターがこれらの未処理の証明書を正常に処理するには、コンピューターは Active Directory で機関情報アクセス (AIA) と CRL 配布ポイントのパスを見つける必要があります。 すべての未処理の証明書を取り消し、CRL の有効期間を延長し、Active Directory で CRL を発行することをお勧めします。 未処理の証明書がさまざまな PKI クライアントによって処理される場合、検証は失敗し、それらの証明書は使用されません。
Active Directory で CRL 配布ポイントと AIA を維持することが優先されない場合は、これらのオブジェクトを削除できます。 1 つ以上の以前にアクティブなデジタル証明書を処理する場合は、これらのオブジェクトを削除しないでください。
Active Directory からすべての Certification Services オブジェクトを削除する
Note
Active Directory フォレスト内のすべての CA オブジェクトを削除するまで、Active Directory から証明書テンプレートを削除しないでください。
Active Directory からすべての Certification Services オブジェクトを削除するには、次の手順に従います。
CA の CACommonName を決定します。 これを行うには、次の手順を実行します。
- Startを選択し、実行を選択し、[開く] ボックスに「cmd」と入力し、OK を選択します。
- 「 certutil」と入力し、Enter キーを押します。
- CA に属する Name 値を書き留めます。 この手順の後の手順では、CACommonName が必要になります。
Start を選択し、Administrative Tools をポイントし、Active Directory サイトとサービスを選択します。
View メニューの [サービス ノード表示] を選択。
Servicesを展開し、Public Key Services を展開して、AIA フォルダーを選択します。
右側のウィンドウで、CA の CertificationAuthority オブジェクトを右クリックし、 Delete を選択し、 Yes を選択します。
Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、CDP フォルダーを選択します。
右側のウィンドウで、証明書サービスがインストールされているサーバーのコンテナー オブジェクトを見つけます。 コンテナーを右クリックし、 [削除] を選択し、[ Yes 2 回選択します。
Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、 証明書機関 ノードを選択します。
右側のウィンドウで、CA の CertificationAuthority オブジェクトを右クリックし、 Delete を選択し、 Yes を選択します。
Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、[ 登録サービス ノードを選択します。
右側のウィンドウで、証明書サービスのアンインストール時に CA の pKIEnrollmentService オブジェクトが削除されたことを確認します。 オブジェクトが削除されていない場合は、オブジェクトを右クリックし、 削除を選択し、 Yesを選択します。
すべてのオブジェクトが見つからない場合は、次の手順を実行した後、一部のオブジェクトが Active Directory に残ることがあります。 Active Directory にオブジェクトが残っている可能性がある CA をクリーンアップするには、次の手順に従って、AD オブジェクトが残っているかどうかを確認します。
コマンド ラインで次のコマンドを入力し、Enter キーを押します。
ldifde -r "cn= CACommonName" -d "CN=Public Key Services,CN=Services,CN=Configuration,DC= ForestRoot,DC=com" -f output.ldf
このコマンドでは、 CACommonName は、手順 1 で決定した Name 値を表します。 たとえば、 Name 値が CA1 Contoso の場合は、次のように入力します。
ldifde -r "cn=CA1 Contoso" -d "cn=public key services,cn=services,cn=configuration,dc=contoso,dc=com" -f remainingCAobjects.ldf
メモ帳で remainingCAobjects.ldf ファイルを開きます。 changetype: add という用語を changetype: delete に置き換えます。 次に、削除する Active Directory オブジェクトが正当であるかどうかを確認します。
コマンド プロンプトで次のコマンドを入力し、Enter キーを押して残りの CA オブジェクトを Active Directory から削除します。
ldifde -i -f remainingCAobjects.ldf
すべての証明機関が確実に削除されている場合は、証明書テンプレートを削除します。 手順 12 を繰り返して、AD オブジェクトが残っているかどうかを確認します。
重要
すべての証明機関が削除されていない限り、証明書テンプレートを削除しないでください。 テンプレートが誤って削除された場合は、次の手順に従います。
エンタープライズ管理者として証明書サービスを実行しているサーバーにログオンしていることを確認します。
コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
cd %windir%\system32
次のコマンドを入力し、Enter キーを押します。
regsvr32 /i:i /n /s certcli.dll
この操作により、Active Directory に証明書テンプレートが再作成されます。
証明書テンプレートを削除するには、次の手順に従います。
- Active Directory サイトとサービスの左側のウィンドウで MMC スナップインの [証明書テンプレート] フォルダーを選択します。
- 右側のウィンドウで証明書テンプレートを選択し、Ctrl キーを押しながら A キーを押してすべてのテンプレートを選択します。 選択したテンプレートを右クリックし、[ 削除] を選択し、[ Yesを選択します。
手順 7 - NtAuthCertificates オブジェクトに発行された証明書を削除する
CA オブジェクトを削除した後、 NtAuthCertificates
オブジェクトに発行された CA 証明書を削除する必要があります。 NTAuthCertificates
ストア内から証明書を削除するには、次のいずれかのコマンドを使用します。
certutil -viewdelstore "ldap:///CN=NtAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot,DC=com?cACertificate?base?objectclass=certificationAuthority"
certutil -viewdelstore "ldap:///CN=NtAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=ForestRoot,DC=com?cACertificate?base?objectclass=pKIEnrollmentService"
Note
このタスクを実行するには、エンタープライズ管理者のアクセス許可が必要です。
-viewdelstore
アクションは、指定した属性の証明書セットに対して証明書選択 UI を呼び出します。 証明書の詳細を表示できます。 選択ダイアログから取り消して、変更を加えないことを行うことができます。 証明書を選択すると、UI が閉じられ、コマンドが完全に実行されると、その証明書が削除されます。
次のコマンドを使用して、Active Directory の NtAuthCertificates オブジェクトへの完全な LDAP パスを確認します。
certutil -viewdelstore -? | findstr "CN=NTAuth"
手順 8 - CA データベースを削除する
Certification Services をアンインストールすると、CA データベースはそのまま残り、CA を別のサーバーに再作成できます。
CA データベースを削除するには、データベースとログを含む Certlog フォルダーを削除します。 これは既定で %systemroot%\System32\Certlog フォルダーに格納されます。
データベースとログ フォルダーの場所は、 Step 5 - Uninstall Certificate Services from the server section にあります。
手順 9 - ドメイン コントローラーをクリーンアップする
CA をアンインストールした後、ドメイン コントローラーに発行された証明書を削除する必要があります。
Windows Server 2003 以降のドメイン コントローラーに発行された証明書を削除するには、次の手順に従います。
重要
バージョン 1 のドメイン コントローラー テンプレートに基づく証明書を使用している場合は、この手順を使用しないでください。
Start を選択し、Run を選択し、「cmd」と入力して、Enter キーを押します。
ドメイン コントローラーのコマンド プロンプトで、「 certutil -dcinfo deleteBad」と入力します。
Certutil.exeは、ドメイン コントローラーに発行されたすべての DC 証明書の検証を試みます。 検証されない証明書は削除されます。
グループ ポリシーの適用を強制するには、次の手順に従います。
Start を選択し、Run を選択し、Open ボックスに「cmd」と入力して、Enter キーを押します。
コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
gpupdate /force