Windows Server2008からWindowsServer2016へのAD証明書サービスの移行するというケースがあるかもしれないということで、参考になる情報があるので紹介します。
まだ、延長サポートでWindows Server 2008 R2を稼働させているケースがあるかもしれませんが、バージョンがあまりに離れすぎると移行が大変になるケースがあるので注意が必要です。
現時点でのOSの最新はWindows Server 2019になりますね。
そして参考になる情報がこちら
Windows Server2008からWindowsServer2016へのAD証明書サービスの移行
タスク
・既存のエンタープライズルートCAをサーバーAからサーバーBに移動します。
・暗号化サービスプロバイダーをMicrosoftStrong CryptographicProviderからKeyStorageProviderに変更します
・CAハッシュアルゴリズムをSHA-1からSHA-256に変更します
CAデータベースをServer2008からServer2016に直接移行することはできないそうです。
残念ながら、CAデータベースをServer2008からServer2016に直接移行することはできません。これは、JETデータベースエンジンが2つのバージョン間で大幅に変更されたため、バックアップを復元すると、起動時にJETバージョンエラーが発生し、CAが起動しないためです。
しかし、もう1つのステップを追加すると、上記のタスクを正常に実行できます。
この追加の手順は、最初にDBバックアップをServer 2012 R2 CAに復元してから、そこからDBを再度バックアップすることです。この新しいバックアップは、Server 2016CAに復元できるようになりました。
その為、最初にDBバックアップをServer 2012 R2 CAに復元してから、そこからDBを再度バックアップすることで2016に移行できるようです。
手順の抜粋です。
詳細は次のとおりです。
まず、Server 2008CAから必要なバックアップを作成する必要があります。
これらは私が行ったステップです:
有効期間の長いCRLの公開
CAデータベースと秘密鍵のバックアップ
CAレジストリ設定のバックアップ
エンタープライズCAの証明書テンプレートを一覧表示します
発行と証明書の管理のアクセス許可を確認します
これらの手順を実行する方法の詳細については、 https://technet.microsoft.com/en-us/library/cc742388(WS.10).aspxを参照してください。
Performing the Upgrade or Migration | Microsoft Docs
これらの手順が正常に完了したら、サーバーからADCSの役割をアンインストールする必要があります。
新しいマシンに移行する場合、この手順は非常に重要です。そうしないと、新しいサーバーがADの登録サービスの下に自分自身を登録できなくなるためです。
アンインストールプロセスが成功した場合は、2016CAを取得する途中で「追加の手順」を実行できます。
Windows Server 2012 R2マシンを使用してドメインに参加し、ADCSの役割をインストールしました。
展開後ウィザードを開始し、次の手順を実行します。
EnterpriseCAを選択します
ルートCAを選択します
秘密鍵の設定画面で、[既存の秘密鍵を使用する]を選択し、バックアップした鍵をインポートします。
ウィザードの以降の手順を完了します。
次に、CAデータベースを復元します。
(上記の手順を完了する方法の詳細な手順が必要な場合は、この記事で見つけることができます:
復元後、CAサービスを正常に開始できました。
次に、今回はServer 2012R2マシンでCAデータベースのバックアップを作成しました。
バックアップ後、CAを停止し、非常に重要なこととして、サーバーからCAの役割をアンインストールします。
これで、Server2016マシンの最終的な場所にCAを構成する準備が整いました。
手順はおなじみです。
展開後のウィザードを開始し、Server2016マシンで次の手順を実行します。
EnterpriseCAを選択します
ルートCAを選択します
秘密鍵の設定画面で、[既存の秘密鍵を使用する]を選択し、バックアップした鍵をインポートします。
ウィザードの以降の手順を完了します。
CAデータベースを復元します。
CAレジストリ設定の復元。
これを行う前に、レジストリファイルを分析し、ある時点で変更する必要がありました。
私が変更したのは:
CAServerName値
次の値を確認してください。
DBDirectory
DBLogDirectory
DBSystemDirectory
DBTempDirectory
(私はそれらを変更する必要はありませんでした)
変更したレジストリファイルをインポートします。
カスタム証明書テンプレートをCAに再割り当てします。
(詳細については、この記事の手順を参照してください
これでCAが稼働していますが、ADSIEditでセキュリティ設定とADアクセス許可を確認する価値があります。
これで、移行の準備が整いました。
これで、暗号化サービスプロバイダーの変更とCAハッシュアルゴリズムのSHA-1からSHA-256への変更は、この記事に基づいて非常に簡単です。
とここまでですが、中々手順が複雑なので本番環境で移行をする場合は、事前に開発環境などで手順を整理しておくといいと思います。