待ってろ!Active Directory!!

待ってろ、ActiveDirectory!

Windows Server の古参である AD様のおなぁ〜りぃ〜

エラーコード-2146762487 で ADCS の起動に失敗してしまう件

どうもです。

f:id:happyzoe:20160301214344p:plain

今回は Windows Server で証明機関(CA)を立てているときに、たった一つあることをしてしまうと 上の写真のように Active Directory Certificate Services (ADCS) が起動できないという恐ろしい事態が発生してしまうということについてお伝えしていこうと思います。

 

まず CA が起動できないことが何を意味するでしょうか。

 

そうです、証明書を発行できません。

 

証明書を発行できないとなると、どうなりますかね...??

 

現在証明書はあらゆるところで使われています。

例えばSSLプロキシとなるネットワーク機器で必要となるサーバ証明書を発行できなければ、そのプロキシを経由するクライアントは SSL を使った通信を行えないでしょう。

もちろん影響は甚大です。

 

このように構築段階で ADCS が起動しないとなると、非常に困った状態が生み出されるわけです。

 

ではどうすれば、この状態になってしまうのか。

簡単です。

 

信頼されたルート証明機関から CA 証明書を削除すれば全く起動できなくなります。

なので対策としては、信頼されたルート証明機関から CA 証明書を削除しないことに限ります。

 

まぁ普通、証明書を適当に管理なんてしないはずなんですけどね...

 

では次に以下の点についてお話していきます。

1. なぜこの事象が発生してしまうのか

2. どれがCA証明書なのかわからない時にインポートすればいい証明書を見つける方法

 

1. について

どうやら ADCS を起動するときに、中間証明機関に格納されている証明書の信頼チェーンをチェックするようです。

Windows Server でエンタープライズにしろ、スタンドアロンにしろ CA を構築した場合、自動的に CA 証明書が中間証明機関に格納されます。

こちらはCA証明書なので、もちろんCAの秘密鍵で署名されています。

なのでCA証明書が信頼されたルート証明機関に格納されていない場合、信頼チェーンを作成するときに失敗してしまいます。

<参考文書>

IPA 5.1.3  トラストアンカー

https://www.ipa.go.jp/security/pki/051.html#_Toc3020802

 

2. について

いくつかありますが、中間証明機関に格納されていて、Subject Type が CA となっているものを手当たり次第に信頼されたルート機関に格納するという方法が手っ取り早いと思います。

ちゃんと足りないCA証明書を明確にしたい場合には CAPI2 ログを利用してみてください。足りない証明書のシリアルナンバーが詳細タブに記載されています。

Windows Vista での PKI に関する問題のトラブルシューティング

f:id:happyzoe:20160301221926p:plain

 

 エラーイベント ID:11 を見てみると、「証明書チェーンは処理されましたが、信頼プロバイダーが信頼していないルート証明書で強制終了しました。」と記載されています。