ITよろづや

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

Windows Server2008から2016へのAD証明書サービス(ADDS)の移行手順

Windows Server2008からWindowsServer2016へのAD証明書サービスの移行するというケースがあるかもしれないということで、参考になる情報があるので紹介します。

 

まだ、延長サポートでWindows Server 2008 R2を稼働させているケースがあるかもしれませんが、バージョンがあまりに離れすぎると移行が大変になるケースがあるので注意が必要です。

 

現時点でのOSの最新はWindows Server 2019になりますね。

 

そして参考になる情報がこちら

 

Windows Server2008からWindowsServer2016へのAD証明書サービスの移行

https://social.technet.microsoft.com/wiki/contents/articles/37373.migrating-ad-certificate-services-from-windows-server-2008-to-windows-server-2016.aspx

 

タスク

・既存のエンタープライズルート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データベースを復元します。

(上記の手順を完了する方法の詳細な手順が必要な場合は、この記事で見つけることができます:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc742388(v=ws.10)?redirectedfrom=MSDN

 

 

復元後、CAサービスを正常に開始できました。

次に、今回はServer 2012R2マシンでCAデータベースのバックアップを作成しました。

バックアップ後、CAを停止し、非常に重要なこととして、サーバーからCAの役割をアンインストールします。

これで、Server2016マシンの最終的な場所にCAを構成する準備が整いました。

手順はおなじみです。

展開後のウィザードを開始し、Server2016マシンで次の手順を実行します。

EnterpriseCAを選択します
ルートCAを選択します

秘密鍵の設定画面で、[既存の秘密鍵を使用する]を選択し、バックアップした鍵をインポートします。

ウィザードの以降の手順を完了します。

CAデータベースを復元します。

CAレジストリ設定の復元。

これを行う前に、レジストリファイルを分析し、ある時点で変更する必要がありました。

私が変更したのは:

CAServerName値
次の値を確認してください。

DBDirectory
DBLogDirectory
DBSystemDirectory
DBTempDirectory
(私はそれらを変更する必要はありませんでした)

変更したレジストリファイルをインポートします。
カスタム証明書テンプレートをCAに再割り当てします。

(詳細については、この記事の手順を参照してください

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc742388(v=ws.10)?redirectedfrom=MSDN

 

これでCAが稼働していますが、ADSIEditでセキュリティ設定とADアクセス許可を確認する価値があります。

これで、移行の準備が整いました。

 

これで、暗号化サービスプロバイダーの変更とCAハッシュアルゴリズムSHA-1からSHA-256への変更は、この記事に基づいて非常に簡単です。

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn771627(v=ws.11)?redirectedfrom=MSDN

 

とここまでですが、中々手順が複雑なので本番環境で移行をする場合は、事前に開発環境などで手順を整理しておくといいと思います。