Active Directory 証明書サービスで構築したエンタープライズ CA を撤去するための手順を紹介します。
エンタープライズ CA を撤去する手順としては、基本的には “Active Directory 証明書サービス” の役割をアンインストールするのみです。
ただし、”Active Directory 証明書サービス” の役割をアンインストールでは、証明機関そのものは削除されますが、CA 証明書や CRL 等の証明機関の運用に利用されていた一部の情報が残存してしまいます。
ドメイン環境に構築したエンタープライズ CA を、データを残さずに完全に撤去する手順について説明します。
ただし、証明機関が発行して配布したユーザー証明書やコンピューター証明書は、削除対象に含めておりませんのでご注意ください。
事前準備
事前準備として、撤去対象となる証明機関の CA 証明書の情報を把握します。
完全撤去のために把握する必要があるのは、CA 証明書の拇印と CA 証明書に紐づく秘密鍵のキー コンテナー名です。
CA 証明書の情報の確認方法
1) CA サーバーに管理者権限をもつユーザーでログオンします。
2) 管理者権限でコマンド プロンプトを開きます。
3) 以下のコマンドを実行します。
certutil -store my <CA 名>
上記のコマンドの実行例では CA 証明書は 1 つのみですが、複数の CA 証明書がある場合は全ての CA 証明書の拇印とキーコンテナー名をメモしてください。
CA 証明書の拇印は証明書を特定するためのデータで、キーコンテナー名は秘密鍵を特定するためのデータです。
そのため、拇印の情報は CA 証明書ごとに異なりますが、キーコンテナー名はキーペアを書き換えずに CA 証明書を更新していることも考えられますので、複数の CA 証明書で同じものであることもあります。
CA 名は certutil -cainfo コマンドを実行し、“CA の名前” の項目から確認できます。
Active Directory 証明書サービスのアンインストール
証明機関を撤去は、”Active Directory 証明書サービス” の役割をアンインストールすることで行えます。
1) CA サーバーに管理者権限をもつユーザーでログオンします。
2) [サーバー マネージャー] より、[役割と機能の削除] をクリックします。
3) [開始する前に] にて、[次へ] をクリックします。
4) [対象サーバーの選択] にて、そのまま [次へ] をクリックします。
5) [サーバーの役割の削除] にて、[Active Directory 証明書サービス] を展開し [証明機関] のチェックボックスをクリックします。
6) [証明機関 を必要とする機能を削除しますか?] にて、[管理ツールを削除する (存在する場合)] のチェックボックスが有効になっていることを確認し、[機能の削除] をクリックします。
7) [サーバーの役割の削除] にて、[証明機関] のチェックボックスが無効になっていることを確認し、[次へ] をクリックします。
8) [機能の削除] にて、そのまま [次へ] をクリックします。
9) [削除オプションの確認] にて、[削除] をクリックします。
10) [削除の進行状況] にて、証明機関の削除の準備が完了したら、[閉じる] をクリックしてウィザードを削除します。
11) OS を再起動して、削除の処理を完了させます。
証明機関の関連ファイルの削除
Active Directory 証明書サービスの “証明機関” の役割をアンインストールしても、CA データベースや CRL や CA 証明書のエクスポート ファイルを保存しているフォルダは残ります。
そのため、エクスプローラーから手動で不要なフォルダを削除します。
1) 証明機関をインストールしていたサーバーに管理者権限をもつユーザーでログオンします。
2) エクスプローラーを開き、以下のパスに移動します。
C:\Windows\System32
3) System32 のフォルダの配下にある “CertLog” と “CertSrv” のフォルダを削除します。
CA 証明書の削除と秘密鍵の削除
Active Directory 証明書サービスの “証明機関” の役割をアンインストールしても、証明書ストアに CA 証明書は残り、また CA 証明書に紐づく秘密鍵はそのまま残ります。
そのため、証明書ストアから CA 証明書を削除し、秘密鍵もあわせて削除します。
証明書ストアから CA 証明書の削除
1) 証明機関をインストールしていたサーバーに管理者権限をもつユーザーでログオンします。
2) 管理者権限でコマンド プロンプトを開きます。
3) 以下のコマンドを実行して、証明書ストアから CA 証明書を削除します。
certutil -delstore my “<CA 証明書の拇印>”
※ <CA 証明書の拇印> には、事前準備で確認した CA 証明書の拇印を指定します。
“CertUtil -delstore コマンドは正常に完了しました。” というメッセージが表示されたら、証明書ストアから CA 証明書は削除されております。
複数の CA 証明書が登録されている環境であれば、全ての CA 証明書を削除してください。
秘密鍵の削除
1) エクスプローラーを開きます。
2) 表示メニューにて、[隠しファイル] のチェックボックスを有効にします。
4) エクスプローラーにて、C:\ProgramData\Microsoft\Crypto\Keys に移動し、秘密鍵のファイル(キーコンテナー名と一致するファイル)を削除します。
構成パーティションのコンテナ情報の削除
エンタープライズ CA では、AD データベースの構成パーティションにて CA で利用する情報を管理しております。
ドメイン環境の各端末に配布する CA 証明書や CRL、証明書テンプレートなどの情報は、Active Directory 証明書サービスの “証明機関” の役割をアンインストールしても AD データベース上に残存します。
そのため、AD データベース上から残存しているデータを削除します。
1) ドメイン環境にある任意のドメイン コントローラーにて、管理者権限をもつユーザーでログオンします。
2) [Windows 管理ツール] より [Active Directory サイトとサービス] を開きます。
3) メニューにて [表示] を選択し、[サービス ノードの表示] を選択して有効にします。
([サービス ノードの表示] にてチェックのアイコンがあれば “有効” となっています)
4) 画面の左ペインより、[Services] – [Public Key Services] を選択します。
5) [Public Key Services] の下にある各コンテナから撤去した CA に関する情報を削除します。
AIA コンテナ
機関情報アクセス(AIA) の情報を管理するコンテナです。
AIA コンテナにある撤去した CA の名前をもつオブジェクトを削除します。
CDP コンテナ
CRL 配布ポイント (CDP) の情報を管理するコンテナです。
CDP コンテナにある撤去した CA の名前をもつコンテナを削除します。
Certificate Authorities コンテナ
フォレスト内の信頼されるルート証明書を管理するコンテナです。
Certificate Authorities コンテナにある撤去した CA の名前をもつオブジェクトを削除します。
KRA コンテナ
フォレスト内の信頼されるキー回復エージェント用の証明書を管理するコンテナです。
KRA コンテナにある撤去した CA の名前をもつオブジェクトを削除します。
Certificate Templates コンテナは証明書テンプレートの情報を管理しており、OID はエンタープライズ CA で利用される OID の情報を管理しております。
この情報はフォレスト内の全てのエンタープライズ CA で共有される情報です。
Certificate Templates コンテナ、OID コンテナに登録されているデータを削除すると、フォレスト内に他のエンタープライズ CA が存在した場合に予期しない問題が発生する恐れがあります。