Windows Server 2012 R2で稼働しているActive Directory Certificate Services (AD CS) を、最新バージョンのWindows Serverへ移行する際、上手に手順や設定を把握しておけば、後々のトラブルや再構成の手間を大きく削減できます。ここでは移行時の最適な方法や考慮ポイントをご紹介します。
Windows Server 2012 R2からAD CSを移行する背景と全体像
Windows Server 2012 R2のサポートライフサイクル終了や、性能面・セキュリティ面の強化が必要になったタイミングで、AD CSの移行が検討されることが多くあります。証明書サービスは、社内LANやVPN接続、無線LAN認証、WebサーバーへのSSL証明書など、さまざまなインフラの根幹を支える重要な役割を担っています。したがって、移行時に誤った手順や設定漏れがあると、証明書を利用しているサービス全体に影響を及ぼしかねません。
そこで本記事では、Windows Server 2012 R2からWindows Server 2019または2022(あるいはそれ以降)へ、AD CSを安全かつスムーズに移行するためのポイントを解説します。インプレースアップグレードと比較して、新規サーバーを用いて移行する利点や具体的な手順、そしてCA名やサーバー名を扱う際の注意点、CRL配布ポイントの調整方法などを詳しく取り上げます。
移行の基本方針:インプレースアップグレードより「新サーバーへの移行」
Windows Server 2012 R2から2019/2022などへAD CSを移行するには、大きく分けて2つのパターンが考えられます。
- インプレースアップグレード
既存のWindows Server 2012 R2のOSを直接2019/2022などへアップグレードする方法。サーバー1台で済むため、一見すると作業が少なく見えるかもしれませんが、アップグレード時に予期せぬトラブルが発生する可能性があり、後戻りが難しいのがデメリットです。 - 新サーバーへ移行
新しいWindows Server 2019/2022のサーバーを用意し、AD CSの役割をインストールして旧サーバーから証明書や設定をエクスポート・インポートする方法。インプレースアップグレードに比べ手順は増えるように感じるかもしれませんが、トラブルシュートが容易で、移行計画を立案しやすいというメリットがあります。
総合的な安定性と保守性を考慮すると、新サーバーへの移行が圧倒的に推奨される方法です。特にCAサーバーは企業内の重要インフラであり、停止時間や障害リスクを最小限に抑える必要があります。
インプレースアップグレードが敬遠される理由
- OSアップグレードの過程で想定外の設定不整合やドライバの不具合が発生するリスクが高い
- 障害が起きた場合、OSを元の状態にロールバックするのが難しい
- システム領域やソフトウェア依存関係の問題で作業時間が読みにくい
こうした理由から、本記事では「新サーバーへの移行」を中心に解説します。
移行時に押さえるべき主要ポイント
AD CSの移行では、以下の5つをしっかり把握しておくとスムーズに進められます。
- CA名の継承とサーバー名の変更可否
- 旧サーバーからの証明書と秘密鍵のエクスポート・インポート
- CRL(証明書失効リスト)配布ポイントの調整
- AIA(Authority Information Access)とCDP(CRL Distribution Point)設定の確認
- 移行後の運用確認 (証明書発行と失効テスト)
1. CA名の継承とサーバー名の変更可否
移行に際して、必ず同じにしておくべきなのはCA名です。
- 既存のクライアント証明書や各種サーバー証明書には、「発行元CA名」として旧サーバーのCA名が埋め込まれています。ここを変更してしまうと、新サーバーの発行元とクライアント側で認識している発行元に差異が生じてしまい、不整合を引き起こします。
- 一方、サーバー(ホスト)名は変更しても構いません。ただし、CRL配布ポイントやAIAのURLに旧サーバー名を指定している環境では、新サーバーで旧サーバー名宛てのアクセスを受けられるようにするか、新URLへのリダイレクト設定などの対策が必要です。
2. 旧サーバーからの証明書と秘密鍵のエクスポート・インポート
最も重要かつミスが起こりやすい工程が、証明書と秘密鍵の移行です。CAサーバーの証明書は移行先でも同一の秘密鍵を使用する必要があります。
- 旧サーバー側で、CAの証明書および秘密鍵のバックアップ(エクスポート)を実施
- 新サーバー側で、AD CSインストール時に「既存の証明書と秘密キーを使用する」オプションを選択してインポート
具体的には、以下のコマンドやGUIを使う方法があります。
# 旧サーバー(Windows Server 2012 R2)上で、CA構成と秘密鍵をバックアップ
certutil -backupDB C:\CABackup
certutil -backupKey C:\CABackup
上記によりC:\CABackup フォルダ内にCAデータベースと秘密鍵が保存されます。
次に新サーバーでAD CSを役割として追加し、「証明書サービスの構成ウィザード」を実行します。既存の秘密鍵を選択し、先ほどエクスポートしたキーを指定することで、同じCAを再構成できます。
3. CRL配布ポイント(CDP)の調整
移行前に発行された証明書には、旧サーバー名や旧ドメイン名などがCRL配布ポイントとして埋め込まれている場合が多いです。既存の証明書を継続利用する場合、移行後もしばらくは旧サーバー名のCDPにアクセスできるようにしておかないと、クライアントやサーバーが失効チェックに失敗してしまうリスクがあります。
- 新サーバーで旧サーバー名のURLに対してもCRLを発行・配置するか、DNSエイリアスやリダイレクトを活用して、新サーバーのCRLを取得できるよう工夫をする
- 社内限定であれば、hostsファイルやDNSサーバー設定を利用して、旧サーバー名で新サーバーに到達できるようにする
- 既存の証明書の有効期限が切れるまでは、旧CDPのURLも有効にしておく方が安全
CRLの設定画面例
Windows Server 2019/2022側でAD CSをインストール後、CAプロパティを開き、拡張タブにある「CRL配布ポイント(CDP)」で配布先を変更・追加できます。移行期には以下のように複数のURLを指定する方法がおすすめです。
- 新サーバー名ベースのURL (例:
http://new-server/CertEnroll/<CaName><CRLNameSuffix>.crl
) - 旧サーバー名ベースのURL (例:
http://old-server/CertEnroll/<CaName><CRLNameSuffix>.crl
)
CRLの再発行を行うと、指定されたすべてのURLへCRLファイルが配置されるように設定できます。これで、移行前に発行済みの証明書も、新規に発行される証明書も両方とも正常に失効チェックが行えます。
4. AIAとCDPの具体例:表で解説
下記のように、AIA(発行機関情報)とCDP(失効リスト配布ポイント)を整理して設定すると分かりやすくなります。
項目 | 新サーバー設定 | 旧サーバー設定 | 注意点 |
---|---|---|---|
AIA | http://new-server/CertEnroll/<ServerName>_<CaName>.crt | (可能であれば同一URLを維持) | クライアントが証明書チェーンを正しく取得できるよう、移行後も同じまたは追加設定する |
CDP | http://new-server/CertEnroll/<CaName><CRLNameSuffix>.crl | http://old-server/CertEnroll/<CaName>.crl | 既存の証明書にはold-serverのURLが埋め込まれているため、新サーバーでも同名URLへ発行を続けられるよう工夫 |
DNS/ホスト名 | new-server | old-server | DNSエイリアスやリダイレクト、ホストファイルで同一サーバーに誘導。もしくは旧サーバーのWebサイトを新サーバーへ流す |
エイリアス設定 | CNAME old-server -> new-server | – | 一時的に運用しておき、旧サーバーで発行された証明書が全て有効期限切れになるまで維持 |
このように、移行期間中は並行運用あるいはエイリアスを活用することで、従来のURLと新しいURLのどちらへも確実にアクセスできる状態を保つことが重要です。
実際の移行手順:ステップバイステップ
ここからは、新サーバーへの移行手順を、ざっくりとしたフローで示します。
ステップ1:旧サーバーのバックアップ
- CA構成のバックアップ
- CAデータベースと秘密鍵のバックアップ
- CA構成情報(レジストリキーやCAPolicy.infなど)のエクスポート
- システム全体のバックアップ
イメージバックアップやスナップショット(仮想環境の場合)を取得
ステップ2:新サーバーの構築
- Windows Server 2019/2022のインストール
最新の更新プログラムを適用し、ネットワーク設定やドメイン参加など初期設定を実施 - 必要な役割や機能のインストール
AD CSのうち「証明書機関」機能を追加する
ステップ3:CA構成のインポート
- CA証明書および秘密鍵をインポート
- 「証明書サービスの構成ウィザード」で既存の秘密鍵を指定
- CA名は旧サーバーと同一にすることを確認
# 新サーバー(Windows Server 2019/2022)上での例:
Install-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools
# 証明書サービスの構成ウィザードを起動
# GUIから[既存の秘密キーを使用する]を選択し、旧サーバーでエクスポートしたキーを参照
ステップ4:CRL配布ポイント(AIA/CDP)の調整
- 新サーバー名と旧サーバー名双方のURLを登録
- CRL再発行
- DNSエイリアスの設定などを行い、旧サーバーURLへのアクセスも新サーバーで処理できるようにする
ステップ5:クライアント・アプリケーションの動作確認
- 実際に証明書の発行テスト(ユーザー証明書やサーバー証明書)
- 既存証明書の失効テスト(失効リストが正しく反映されるか)
- 各種サービス(IIS、VPN、無線LAN、RDPなど)が新CAを認識しているか確認
サーバー名をそのまま使うケースと変更するケース
サーバー名をそのまま使う場合
- 旧サーバーを停止し、新サーバーに同じホスト名とIPを引き継ぐ場合は、CRL配布ポイントのURLは基本的に変更不要
- 移行後、旧サーバー側で動いていた他の役割などの衝突に注意
- ドメイン参加の手順やコンピューターアカウントのSIDなど、重複が起きないような段取りが必要
サーバー名を変更する場合
- 新しいホスト名に変えることでネットワーク管理上は明確になるが、既存証明書のCDP/AIAに旧名が埋め込まれているとアクセス不能になる可能性あり
- DNSエイリアスやHTTPリダイレクトなどで旧名のURLでも新サーバーが応答できる設定を行う
- 組織ポリシーやセキュリティ要件によっては、旧名を早期に廃止したい場合もあるため、計画的な証明書の再発行スケジュールを検討
移行の際によくあるトラブルと対処法
ここでは、AD CS移行時に陥りがちなトラブルと対策をまとめます。
トラブル1:クライアントが失効確認エラーを返す
- 原因: 移行後、証明書に埋め込まれたCRL配布ポイント(旧サーバーURL)が無効になっている
- 対処: 旧サーバーURLに対してもCRLを発行するか、DNSエイリアスを用いて新サーバーにアクセスさせる
トラブル2:新サーバーのCA名が異なっているため、証明書チェーンが無効と判定される
- 原因: ウィザードで新しいCA名を割り当ててしまった
- 対処: 移行時に必ず旧サーバーのCA名と同一に設定し、同じ秘密鍵をインポートして「同一CA」として認識させる
トラブル3:移行後に証明書の再発行が必要になった
- 原因: CDPやAIAのURL設定などが適切に継承されていない
- 対処: 移行直後のテストフェーズで問題を発見し、必要に応じて証明書テンプレートを更新・再発行する。また、新証明書を導入後に旧証明書を段階的に廃止する計画を立てる。
トラブル4:移行後のログ・イベント監査がおかしい
- 原因: イベントログや監査ポリシーの設定が旧サーバーと異なる
- 対処: 移行前に旧サーバー上の監査ポリシーやイベントログの構成を確認し、新サーバーでも同等設定を適用する
移行後の最終チェックと継続運用
移行を完了したら、以下の点を最終チェックすると安心です。
- AD CSコンソールでCAの状態を確認
サービスが正常に稼働しているか、イベントビューアーにエラーがないかを確認します。 - 既存発行の証明書が正常に使えるか
RDP接続やVPN接続、各種ウェブサービスなど、証明書を利用しているアプリケーションが問題なく動作するかをテストします。 - 新規証明書が正しく発行・インストールされるか
ユーザー証明書やコンピューター証明書を新しく発行し、従来のCAと同じように署名され、チェーン検証も問題ないことを確認します。 - CRLの発行スケジュールや自動更新設定を再チェック
定期的にCRLが更新される設定になっているか、期限が切れる前に自動発行されるかどうかをチェックします。 - セキュリティパッチの適用とバックアップ運用
CAサーバーは企業のセキュリティ基盤です。今後もパッチ適用を怠らず、定期的にシステム全体のバックアップを取得します。
Microsoft公式ドキュメントと参考リソース
AD CSの移行については、Microsoft公式ドキュメントが最も信頼できる情報源です。
- 「Active Directory Certificate Services の移行ガイド」(バージョン別に公開されている)
- 旧サーバーから新サーバーへの移行ステップバイステップ
- PowerShellスクリプトによるバックアップ・復元事例など
英語のドキュメントではありますが、以下のキーワードで検索すると詳細な手順を見つけやすいです。
- “Step-By-Step: Migrating The Active Directory Certificate Service From Windows Server 2008 R2 to 2019”
- “AD CS Migration: Migrating the Certification Authority”
これらの手順はWindows Server 2008 R2や2012 R2、2016などから2019や2022へ移行する場合でも大きな差異はありません。細かなGUIのレイアウトやコマンドに違いがある場合は、必ず移行先サーバーのバージョンに対応したドキュメントを参照してください。
まとめ:計画的な移行でスムーズな運用を
Windows Server 2012 R2からWindows Server 2019/2022以降へAD CSを移行する場合は、トラブルを最小限にするために以下の点をしっかり押さえましょう。
- CA名を旧サーバーと同一に設定する
- インプレースアップグレードよりも新サーバーへの移行が推奨
- CRL配布ポイントやAIAなど、旧サーバーURLへのアクセスをしばらく維持
- 秘密鍵のエクスポート・インポートに誤りがないか慎重に確認
- 移行後の動作テストとモニタリングを継続
これらを遵守することで、既存の証明書やクライアント設定を大きく変更することなく、新しいサーバー環境へスムーズに移行できます。企業のセキュリティインフラを支える重要コンポーネントであるAD CSを確実に移行して、引き続き安定した運用を実現していきましょう。
コメント