Windows EFS 回復証明書のエラー

職場のPCでWindows EFS 暗号化の設定がいじれなくなった*1時に出たエラーダイアログ。

キャプション 属性の適用エラー
メッセージ ファイル属性の適用中にエラーが発生しました/(パス)/このシステムに対して構成された回復ポリシーに無効な回復証明書が含まれています。
ボタン 無視/すべて無視/再試行/キャンセル

サーバ/クライアントOSは以下のような感じ。

サーバ(ドメインコントローラ)OS Windows Server 2003
クライアントOS Windows XP sp3

原因は

サーバのファイル暗号化の回復エージェントの証明書ファイルの有効期限切れ

インストール直後の回復エージェントの証明書の有効期限の設定は3年らしい。サーバのトラブルかと思って心配して損した、っつーか、有効期限のアラートくらい出してほしいなあ。ANAのシステムダウンの事例みたい。
以下、回復エージェント証明書再作成&再インストールの作業手順。

回復エージェント証明書再作成

以下、サーバ(ドメインコントローラ)での作業。

Administratorでドメインコントローラにログイン
コマンドラインプロンプトを起動して任意の場所にカレントディレクトリ移動
以下のコマンドを入力して、回復エージェントの証明書を作成
cipher /r:(任意のファイル名)((適当なファイル名称を入力))
適当なパスワードを入力する*2
.PFXファイルを保護するためのパスワードを入力してください:
確認のためのパスワードを再入力してください:
証明書ファイルの確認

以下のメッセージが出ていればOK。

.CER ファイルが正しく作成されました。
.PFX ファイルが正しく作成されました。

cipherコマンドを実行したディレクトリに、任意のファイル名で

  • (任意のファイル名).CER*3
  • (任意のファイル名).PFX*4

が作成されていることを確認する。

PFXファイルのインストール

前項で作成したPFXファイルを選択して右クリック
ポップアップメニューで「PFXのインストール」をクリック
「証明書インポートウィザード」の開始

「次へ」押下。

「証明書インポートウィザード::インポートする証明書ファイル」

前項右クリックで選択したファイル名が表示される。「次へ」を押下。

「証明書インポートウィザード::パスワード」

前項証明書ファイル作成時に入力したパスワードを入力。なお、

  • 「秘密キーの保護を強力にする。」
  • 「このキーをエクスポート可能にする。」

はチェックOFFのままで可。「次へ」押下。

「証明書インポートウィザード::証明書ストア」

「証明書をすべて次のストアに配置する」を選択して「参照」ボタンを押下。「証明書ストアの選択」ダイアログで「個人」を選択して「OK」押下。元のダイアログに戻り、「証明書ストア」の項目に'個人'と表示される。「次へ」押下。

「証明書インポートウィザード::証明書インポートウィザードの完了」

「証明書のインポートウィザードが完了しました」のメッセージが出て、インストールした証明書の情報が表示される。以下。

ユーザーが選択した証明書ストア 個人
内容 PFX
ファイル名 (任意のファイル名).PFX

「完了」押下で「正しくインストールされました」のメッセージが出て、「OK」で終了。

CERファイルのインストール(データ回復エージェントの追加)

「ドメインセキュリティポリシー」の起動

「スタートメニュー」→「管理ツール」→「ドメインセキュリティポリシー

「ドメインセキュリティポリシー::ファイルシステムの暗号化」

ツリービューの、「セキュリティの設定」→「公開キーのポリシー」→「ファイルシステムの暗号化」を選択
既存のファイル回復証明書が表示される(「目的」が「ファイル回復」となっているもの)。この時点でのファイル回復エージェント用証明書ファイルの有効期限が切れていることを確認した。

「ドメインセキュリティポリシー::データ回復エージェントの追加」

右側のビューの証明書が何もないところで右クリックするとポップアップメニューが表示される。ここで、「データ回復エージェントの追加」を押下する。

「ドメインセキュリティポリシー::データ回復エージェントの追加ウィザードの開始」

「次へ」押下

「データ回復エージェントの追加ウィザード::回復エージェントを選択してください」

「フォルダの参照」を押下。作成した証明書ファイル(CERファイル)を選択して「開く」を押下する。

「データ回復エージェントの追加ウィザード::回復エージェントを追加します」

Windowsはこの証明書が失効しているかどうかを決定できません。この操作を正しく終了しました。この証明書をインストールしますか?

メッセージがおっかないけど(意味不明だし)、「はい」選択。
元のダイアログに戻り、以下のように選択した証明書の内容が表示される。

ユーザー USER_UNKNOWN
証明書 Administrator

「次へ」押下。

「データ回復エージェントの追加ウィザード::回復エージェント追加ウィザードの完了」

「回復エージェントの追加ウィザードが正常に完了しました。」と表示される。「完了」押下。

古い証明書の削除

元の「ドメインセキュリティポリシー」(既定のドメインセキュリティの設定)画面に戻り、元から入っている証明書を削除する。有効期限の古いほうを選択して右クリック。ポップアップメニューで「削除」押下。
古いのを残してもよいが、クライアントPCが2000の場合、回復エージェントの証明書の有効期限をチェックする機能がないため、古い証明書のまま暗号化の機能を使うことになりいろいろとまずいらしい*5。削除するほうがベター。
なお、ドメインコントローラを複数台運用している場合は、証明書は自動的に同期されるのでそれぞれ設定する必要はない。

クライアントPCでの確認

Windowsをログオンしなおすと新しい証明書を自動的にダウンロードして使うので、改めてクライアント側で行うことはない。ログオンしなおして暗号化の機能が正しく使えることを確認する。

*1:readはできるけど暗号化/暗号化解除の操作ができない

*2:後で証明書をインストールする時に必要

*3:セキュリティ証明書:秘密鍵みたいなもの

*4:Personal Information Exchang:公開鍵みたいなもの

*5:サポート談