ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

ADDS(Active Directory)とADCS(証明書サービス)を同一サーバの同居は移行が大変なのでおすすめしない

ADDS(Active Directory)とADCS(証明書サービス)を同一サーバの同居は移行が大変なのでおすすめしないです。以前、ADに色んな役割を与えているサーバを見たことがありますが、色々と検証するのはいいですが、移行が大変になります。

 

認証系はトラブルになると切り分けが大変なので、色んな役割を与えないほうがいいですね。

 

例えば、マイクロソフトのフォーラムにこんな問い合わせがありますが、ADDSとADCSを分離して構成した場合より移行が面倒です。

 

ADCS 他のサーバーへ移行 

 

 

FSMOとADCSを兼ねていたサーバー(SvAと呼びます)が起動しなくなってしまったため、他のDC(SvBと呼びます)でFSMO強制変更を行いました。
その後、SvAは起動するようになったのですが、再度DCとして使うためには一旦DCを降格する必要があるらしいです。
DCを降格するにはADCSをアンインストールしなければならないとの事で、ADCSをSvBに移行しようとしています。

手順としては下記のURLを参考にしています。
https://docs.microsoft.com/ja-jp/previous-versions/windows/server/dn486797(v=ws.11)?redirectedfrom=MSDN


この移行手順の中で、SvAの証明機関をバックアップしようとしたところ、
CSPがキーのエクスポートをサポートしていないため、Windowsは1つ以上の秘密キーのバックアップを作成出来ません。継続して、エクスポートできる秘密キーのみのバックアップを作成しますか?
というメッセージが表示されてしまいます。

バックアップされた FileName.p12 ファイルを開いてみると、テンプレートがルート証明機関の証明書は表示されます。

このバックアップされたキーとデータベースをSvB の証明機関にインポートしようとしたところ、インポートされた証明書は選ばれたCAの種類と一致していないため使えません。インポートしたキーは使えます。
というメッセージが表示されてしまい、インポート出来ません。

 

ちなみにこの情報の中にあるエラーコードですが、CAのバックアップに失敗するという情報で結構ヒットします。

 

CertUtil: -exportPFX command FAILED: 0x8009000b (-2146893813 NTE_BAD_KEY_STATE)
CertUtil: Key not valid for use in specified state.

 

コマンドで実行した場合にキーがエクスポート可能な状態になっていないといことで、GUIで実行するといけるとあります。内容的には秘密キーがないにも関わらず、引数でコマンドに入っているのが原因かもしれません。

 

ADCSの移行は移行元から証明書サービスの役割を削除する必要がありますし、ADと合わせると移行手順が複雑になるので、分離して構築するほうがいいですね。