Windows エンタープライズ証明機関を使用停止し、関連するすべてのオブジェクトを削除する方法

この記事では、Microsoft Windows エンタープライズ CA の使用を停止する方法と、Active Directory ディレクトリ サービスから関連するすべてのオブジェクトを削除する方法について説明します。

適用対象: Windows Server
元の KB 番号: 889250

概要

証明機関 (CA) をアンインストールすると、CA によって発行された証明書は通常、未処理のままです。 未処理の証明書がさまざまな公開キー インフラストラクチャ クライアント コンピューターによって処理される場合、検証は失敗し、それらの証明書は使用されません。

この記事では、未処理の証明書を取り消す方法と、CA を正常にアンインストールするために必要なその他のさまざまなタスクを完了する方法について説明します。 さらに、この記事では、ドメインから CA オブジェクトを削除するために使用できるいくつかのユーティリティについて説明します。

手順 1 - エンタープライズ CA によって発行されたすべてのアクティブな証明書を取り消す

  1. [ スタート] を選択し、[ 管理ツール] をポイントし、[ 証明機関] を選択します。
  2. CA を展開し、[発行済み証明書] フォルダーを選択します。
  3. 右側のウィンドウで、発行された証明書のいずれかを選択し、Ctrl キーを押しながら A キーを押して、発行されたすべての証明書を選択します。
  4. 選択した証明書を右クリックし、[ すべてのタスク] を選択し、[ 証明書の取り消し] を選択します。
  5. [ 証明書失効 ] ダイアログ ボックスで、失効の理由として [ 操作の停止 ] を選択し、[OK] を選択 します

手順 2 - CRL の公開間隔を増やす

  1. 証明機関 Microsoft 管理コンソール (MMC) スナップインで、[ 失効した証明書 ] フォルダーを右クリックし、[プロパティ] を選択 します
  2. [ CRL パブリケーション間隔] ボックスに適切な長い値を入力し、[ OK] を選択します

注:

証明書失効リスト (CRL) の有効期間は、失効した証明書の有効期間より長くする必要があります。

手順 3 - 新しい CRL を発行する

  1. 証明機関 MMC スナップインで、[失効した証明書] フォルダーを右クリックします。
  2. [ すべてのタスク] を選択し、[発行] を選択 します
  3. [ CRL の発行 ] ダイアログ ボックスで、[ 新しい CRL] を選択し、[ OK] を選択します

手順 4 - 保留中の要求を拒否する

既定では、エンタープライズ CA は証明書要求を格納しません。 ただし、管理者はこの既定の動作を変更できます。 保留中の証明書要求を拒否するには、次の手順に従います。

  1. 証明機関 MMC スナップインで、[保留中の要求] フォルダーを選択します。
  2. 右側のウィンドウで、保留中の要求のいずれかを選択し、Ctrl キーを押しながら A キーを押して、保留中のすべての証明書を選択します。
  3. 選択した要求を右クリックし、[ すべてのタスク] を選択し、[ 要求の拒否] を選択します。

手順 5 - サーバーから証明書サービスをアンインストールする

  1. Certificate Services を停止するには、[ スタート] を選択し、[ 実行] を選択し、「 cmd」と入力して、[ OK] を選択します

  2. コマンド プロンプトで、「 certutil -shutdown」と入力し、Enter キーを押します。

  3. コマンド プロンプトで、「 certutil -getreg CA\CSP\Provider」と入力し、Enter キーを押します。 出力の [プロバイダー ] の値をメモします。 例:

    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 Software Key Storage Provider の場合は、「 CertUtil -CSP KSP -Key 」と入力し、Enter キーを押します。
    値が他の値の場合は、「CertUtil -CSP <PROVIDER NAME -Key」>と入力し、Enter キーを押します。

    このコマンドは、インストールされているすべての暗号化サービス プロバイダー (CSP) の名前と、各プロバイダーに関連付けられているキー ストアの名前を表示します。 一覧表示されているキー ストアの中に、CA の名前が表示されます。 次の例に示すように、名前が複数回表示されます。

    (1)Microsoft Base 暗号化プロバイダー 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-500

    afd1bc0a-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-500

    afd1bc0a-a93c-4a31-8056-c0b9ca632896
    Microsoft インターネット インフォメーション サーバー
    Netmon
    MS IIS DCOM ClientAdministratorS-1-5-21-842925246-1715567821-839522115-500

  4. CA に関連付けられている秘密キーを削除します。 これを行うには、コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    certutil -delkey CertificateAuthorityName
    

    注:

    CA 名にスペースが含まれている場合は、名前を引用符で囲みます。

    この例では、証明機関名は Windows2000 Enterprise Root CA です。 したがって、この例のコマンド ラインは次のとおりです。

    certutil -delkey "Windows2000 Enterprise Root CA"
    
  5. キー ストアをもう一度一覧表示して、CA の秘密キーが削除されたことを確認します。

  6. CA の秘密キーを削除した後、Certificate Services をアンインストールします。 これを行うには、実行している Windows Server のバージョンに応じて、次の手順に従います。

    エンタープライズ CA をアンインストールする場合は、Enterprise Admins のメンバーシップ、または同等のメンバーシップが、この手順を完了するために最低限必要です。 詳細については、「役割ベースの管理」を参照してください。

    CA をアンインストールするには、次の手順に従います。

    1. [スタート] を選択し、[管理ツール] をポイントし、[サーバー マネージャー] を選択します。
    2. [ ロールの概要] で、[ ロールの削除 ] を選択して役割の削除ウィザードを開始し、[ 次へ] を選択します。
    3. [Active Directory Certificate Services チェック] ボックスをオフにし、[次へ] を選択します。
    4. [ 削除オプションの確認] ページで、情報を確認し、[ 削除] を選択します。
    5. インターネット インフォメーション サービス (IIS) が実行されていて、アンインストール プロセスを続行する前にサービスを停止するように求められた場合は、[ OK] を選択します
    6. 役割の削除ウィザードが完了したら、サーバーを再起動します。 これでアンインストール プロセスが完了します。

    1 つのサーバーに複数の Active Directory 証明書サービス (AD CS) ロール サービスがインストールされている場合、手順は若干異なります。 CA をアンインストールし、他の AD CS ロール サービスを保持するには、次の手順に従います。

    注:

    この手順を完了するには、CA をインストールしたユーザーと同じアクセス許可でログオンする必要があります。 エンタープライズ CA をアンインストールする場合は、Enterprise Admins のメンバーシップ、または同等のメンバーシップが、この手順を完了するために最低限必要です。 詳細については、「役割ベースの管理」を参照してください。

    1. [スタート] を選択し、[管理ツール] をポイントし、[サーバー マネージャー] を選択します。
    2. [ ロールの概要] で、[Active Directory 証明書サービス] を選択します。
    3. [ ロール サービス] で、[ ロール サービスの削除] を選択します。
    4. [証明機関のチェック] ボックスをオフにし、[次へ] を選択します。
    5. [ 削除オプションの確認] ページで、情報を確認し、[ 削除] を選択します。
    6. IIS が実行されていて、アンインストール プロセスを続行する前にサービスを停止するように求められた場合は、[ OK] を選択します
    7. 役割の削除ウィザードが完了したら、サーバーを再起動する必要があります。 これでアンインストール プロセスが完了します。

    オンライン レスポンダー サービスなどの残りのロール サービスが、アンインストールされた 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 オブジェクトを削除する

注:

Active Directory フォレスト内のすべての CA オブジェクトを削除するまで、Active Directory から証明書テンプレートを削除しないでください。

Active Directory からすべての Certification Services オブジェクトを削除するには、次の手順に従います。

  1. CA の CACommonName を確認します。 これを行うには、次の手順を実行します。

    1. [スタート] を選択し、[実行] を選択し、[開く] ボックスに「cmd」と入力し、[OK] を選択します
    2. 「certutil」と入力し、Enter キーを押します。
    3. CA に属する Name 値を書き留めます。 この手順の後の手順では、CACommonName が必要になります。
  2. [ スタート] を選択し、[ 管理ツール] をポイントし、[ Active Directory サイトとサービス] を選択します。

  3. [ 表示 ] メニューの [ サービス ノードの表示] を選択します。

  4. [ サービス] を展開し、[ 公開キー サービス] を展開し、AIA フォルダーを選択します。

  5. 右側のウィンドウで、CA の CertificationAuthority オブジェクトを右クリックし、[ 削除] を選択し、[ はい] を選択します。

  6. Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、CDP フォルダーを選択します。

  7. 右側のウィンドウで、Certificate Services がインストールされているサーバーのコンテナー オブジェクトを見つけます。 コンテナーを右クリックし、[ 削除] を選択し、[ はい ] を 2 回選択します。

  8. Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、[ 証明機関 ] ノードを選択します。

  9. 右側のウィンドウで、CA の CertificationAuthority オブジェクトを右クリックし、[ 削除] を選択し、[ はい] を選択します。

  10. Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、[ 登録サービス ] ノードを選択します。

  11. 右側のウィンドウで、Certificate Services がアンインストールされたときに CA の pKIEnrollmentService オブジェクトが削除されたことを確認します。 オブジェクトが削除されていない場合は、オブジェクトを右クリックし、[ 削除] を選択し、[ はい] を選択します。

  12. すべてのオブジェクトが見つからない場合は、これらの手順を実行した後、一部のオブジェクトが Active Directory に残ることがあります。 Active Directory にオブジェクトが残っている可能性がある CA の後にクリーンするには、次の手順に従って、AD オブジェクトが残っているかどうかを判断します。

    1. コマンド ラインに次のコマンドを入力し、Enter キーを押します。

      ldifde -r "cn= CACommonName" -d "CN=Public Key Services,CN=Services,CN=Configuration,DC= ForestRoot,DC=com" -f output.ldf
      

      このコマンドでは、 CACommonName は、手順 1 で決定した Name 値を表します。 たとえば、[ 名前] の値が CA1 Contoso の場合は、次のように入力します。

      ldifde -r "cn=CA1 Contoso" -d "cn=public key services,cn=services,cn=configuration,dc=contoso,dc=com" -f remainingCAobjects.ldf
      
    2. メモ帳で 残りの CAobjects.ldf ファイルを開きます。 changetype: add という用語を changetype: delete に置き換えます。 次に、削除する Active Directory オブジェクトが正当であるかどうかを確認します。

    3. コマンド プロンプトで次のコマンドを入力し、Enter キーを押して残りの CA オブジェクトを Active Directory から削除します。

      ldifde -i -f remainingCAobjects.ldf
      
  13. すべての証明機関が確実に削除されている場合は、証明書テンプレートを削除します。 手順 12 を繰り返して、AD オブジェクトが残っているかどうかを判断します。

    重要

    すべての証明機関が削除されていない限り、証明書テンプレートを削除しないでください。 テンプレートが誤って削除された場合は、次の手順に従います。

    1. Enterprise 管理者として Certificate Services を実行しているサーバーにログオンしていることを確認します。

    2. コマンド プロンプトで、次のコマンドを入力し、Enter キーを押します。

      cd %windir%\system32
      
    3. 次のコマンドを入力し、Enter キーを押します。

      regsvr32 /i:i /n /s certcli.dll
      

      このアクションにより、Active Directory で証明書テンプレートが再作成されます。

    証明書テンプレートを削除するには、次の手順に従います。

    1. Active Directory サイトとサービス MMC スナップインの左側のウィンドウで、[証明書テンプレート] フォルダーを選択します。
    2. 右側のウィンドウで証明書テンプレートを選択し、Ctrl + A キーを押してすべてのテンプレートを選択します。 選択したテンプレートを右クリックし、[ 削除] を選択し、[ はい] を選択します。

手順 7 - NtAuthCertificates オブジェクトに発行された証明書を削除する

CA オブジェクトを削除した後、オブジェクトに発行された CA 証明書を NtAuthCertificates 削除する必要があります。 次のいずれかのコマンドを使用して、ストア内から証明書を NTAuthCertificates 削除します。

certutil -viewdelstore " ldap:///CN=NtAuthCertificates,CN=Public Key
Services,...,DC=ForestRoot,DC=com?cACertificate?base?objectclass=certificationAuthority"
certutil -viewdelstore " ldap:///CN=NtAuthCertificates,CN=Public Key
Services,...,DC=ForestRoot,DC=com?cACertificate?base?objectclass=pKIEnrollmentService"

注:

このタスクを実行するには、エンタープライズ管理者のアクセス許可が必要です。

このアクションは -viewdelstore 、指定した属性の証明書セットに対して証明書選択 UI を呼び出します。 証明書の詳細を表示できます。 選択ダイアログを取り消して変更を加えなくなります。 証明書を選択すると、UI が閉じられ、コマンドが完全に実行されると、その証明書が削除されます。

次のコマンドを使用して、Active Directory の NtAuthCertificates オブジェクトへの完全な LDAP パスを確認します。

certutil -viewdelstore -? | findstr "CN=NTAuth"

手順 8 - CA データベースを削除する

Certification Services をアンインストールすると、CA データベースはそのまま残り、別のサーバーで CA を再作成できます。

CA データベースを削除するには、 %systemroot%\System32\Certlog フォルダーを 削除します。

手順 9 - ドメイン コントローラーをクリーンアップする

CA をアンインストールした後、ドメイン コントローラーに発行された証明書を削除する必要があります。

Windows Server 2000 ドメイン コントローラーに発行された証明書を削除するには、Microsoft Windows 2000 Resource Kit の Dsstore.exe ユーティリティを使用します。

Windows Server 2000 ドメイン コントローラーに発行された証明書を削除するには、次の手順に従います。

  1. [ スタート] を選択し、[ 実行] を選択し、「 cmd」と入力し、Enter キーを押します。

  2. ドメイン コントローラーで、コマンド プロンプトで 「dsstore -dcmon 」と入力し、Enter キーを押します。

  3. 「3」と入力し、Enter キーを押します。 このアクションにより、すべてのドメイン コントローラー上のすべての証明書が削除されます。

    注:

    Dsstore.exe ユーティリティは、各ドメイン コントローラーに発行されたドメイン コントローラー証明書の検証を試みます。 検証されない証明書は、それぞれのドメイン コントローラーから削除されます。

Windows Server 2003 ドメイン コントローラーに発行された証明書を削除するには、次の手順に従います。

重要

バージョン 1 のドメイン コントローラー テンプレートに基づく証明書を使用している場合は、この手順を使用しないでください。

  1. [ スタート] を選択し、[ 実行] を選択し、「 cmd」と入力し、Enter キーを押します。

  2. ドメイン コントローラーのコマンド プロンプトで、「 certutil -dcinfo deleteBad」と入力します。

    Certutil.exe は、ドメイン コントローラーに発行されたすべての DC 証明書の検証を試みます。 検証されない証明書は削除されます。

セキュリティ ポリシーの適用を強制するには、次の手順に従います。

  1. [スタート] を選択し、[実行] を選択し、[開く] ボックスに「cmd」と入力し、Enter キーを押します。
  2. コマンド プロンプトで、オペレーティング システムの対応するバージョンの適切なコマンドを入力し、Enter キーを押します。
    • Windows Server 2000 の場合:

      secedit /refreshpolicy machine_policy /enforce
      
    • Windows Server 2003 の場合:

      gpupdate /force