Active Directory 証明書サービスで構築したエンタープライズ CA を撤去するための手順を紹介します。
基本的な操作としては、 “Active Directory 証明書サービス” の役割をアンインストールすることで、CA(証明機関)そのものを削除できます。ただし、この操作では証明機関そのものは削除されるものの、CA 証明書や CRL(証明書失効リスト)等、Active Directory 上に格納された一部の情報が残存する点に注意が必要です。
本記事では、ドメイン環境に構築されたエンタープライズ 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 が存在した場合に予期しない問題が発生する恐れがあります。