Hyper-V 向けに Windows 証明書サーバーから SSL 証明書をリクエストする方法
Hyper-V には、ある Hyper-V ホストから別のホストへ仮想マシンをレプリケーションするための組み込みツールが用意されています。これは、障害発生時のフェイルオーバーに役立ちます。 多くの場合、Hyper-V レプリケーションは、Active Directory ドメインに接続され、クラスター内に配置された Hyper-V サーバー上で構成されます。しかし、Hyper-V を実行しているサーバーがワークグループ内にある場合でも、Hyper-V レプリケーションを構成することは可能です。これを行うには、証明書が必要です。
このブログ記事では、Windows Server 2016 の組み込みツールを使用して、ワークグループ内で Hyper-V レプリケーションを構成するための証明書を作成する方法について説明します。
Hyper-Vで証明書を使用する理由
証明書ベースのレプリケーションを使用すると、Hyper-V ホストを Windows ドメインやクラスターに追加することなく、仮想マシンをレプリケートできます。この機能は、サーバーが 3 台または 4 台程度しかなく、クラスターを展開したり Active Directory を使用してドメインを構成したりしたくない小規模な企業にとって特に有用です。
ワークグループ環境で証明書を使用したHyper-Vレプリケーションを利用するもう1つの理由は、セキュリティです。VMレプリケーションプロセスに関与するHyper-Vサーバーがドメインのメンバーである場合、ユーザーがActive Directory管理アカウントの資格情報を持っていれば、これらのHyper-Vサーバーを完全に制御される可能性があります。ランサムウェア攻撃などの望ましくないシナリオでは、ADドメイン管理者の資格情報を持つ攻撃者が、アクセス可能なリソース上のすべての情報を破壊する恐れがあります。 そのため、VMレプリケーションに使用するHyper-Vサーバーをワークグループのままにしておく方が、場合によっては安全である可能性があります。
Hyper-Vは、KerberosとHTTPS証明書の2種類の認証をサポートしています。KerberosはActive Directoryドメイン内のコンピューターで使用され、HTTPS証明書はドメイン外の環境で使用されます。HTTPSによるセキュアな接続が使用される場合、SSL証明書の要求が行われます。
主な手順の概要
ワークフローの詳細な説明に入る前に、証明書を使用してワークグループ環境でHyper-Vレプリケーションを設定するために必要な主な手順をまとめておきましょう。
- 両方のHyper-Vサーバーでホスト名を設定します。Hyper-Vサーバーの役割を有効にする必要があります。
- Windows ファイアウォールで HTTPS トラフィックと必要な受信接続を有効にします。
- 最初のサーバーで証明書を作成および設定します。証明書のエクスポートおよびインポートを行います。
- 証明書を2台目のサーバーにコピーする
- 証明書を使用して、2台目のサーバーでレプリケーションを設定します。
- 最初のサーバーでレプリケーションを設定します。VMにはチェックポイントが一切存在してはいけません。
このブログ記事では、Hyper-V ロールがインストールされた 2 台の Windows Server 2016 マシンを使用しています。
サーバーでのホスト名の設定
まずはホスト名の編集から始めましょう。ソースサーバー(プライマリサーバー)とレプリカサーバー(セカンダリサーバーまたは宛先サーバー)のDNS名を設定します。メインのDNSサフィックスを追加する必要があります。証明書を使用するには、完全修飾ドメイン名(FQDN)を使用する必要があります。この例では、サーバー名は次のとおりです:
Hyper-v-prim.test.net – プライマリサーバー(最初のサーバー)
Hyper-v-repl.test.net – レプリカサーバー(2台目のサーバー)
ホスト名を変更するには、システム設定を開き("マイ コンピュータ"または"この PC"のアイコンを右クリック)、 コンピューター名、ドメイン、およびワークグループの設定 セクションで、[クリック] Settings. その コンピュータ名 タブをクリック Change。そして、 コンピュータ名/ドメインの変更 ウィンドウにコンピュータ名を入力し、選択します Workgroup (ドメインではありません)、クリック More、そしてコンピューターのプライマリ DNS サフィックスを入力します。前述の通り、Hyper-V ホストが証明書を使用してレプリケーションを有効にするには、DNS サフィックスを含む完全修飾ドメイン名が必要です。サフィックスとは test.net この例では。ホスト名が hyper-v-prim, 完全修飾ドメイン名は Hyper-v-prim.test.net 当社のメインサーバー用。

下のスクリーンショットでは、プライマリサーバーのコンピュータ名の設定を確認できます。

両方のサーバーでホスト名を設定したら、サーバー上で証明書の作成を開始できます。
プライマリサーバーでの証明書の作成
証明書は、いくつかの方法で作成できます。通常、この目的にはコマンドラインインターフェースが使用されます。最初の方法は、 MakeCert 自己署名証明書を作成するためのツール。さて、 MakeCert このツールは非推奨となっており、別の解決策を採用する予定です。
以下の方法を使用してください。 New-SelfSignedCertificate (従来の方法に代わる最新の)コマンドレット MakeCert 自己署名証明書を作成するためのツール。
プライマリホスト上で(Hyper-v-prim.test.net)、PowerShell で(管理者として)次のコマンドを実行し、証明書を生成します:
New-SelfSignedCertificate -DnsName "Hyper-v-prim.test.net" -CertStoreLocation "cert:LocalMachineMy" -TestRoot
New-SelfSignedCertificate -DnsName "Hyper-v-repl.test.net" -CertStoreLocation "cert:LocalMachineMy" -TestRoot

次に、作成された証明書を確認し、サーバーの設定を続行します。これらのコマンドを実行すると、3つの証明書(サーバー証明書2つとルート証明書1つ)が作成されます。
MMCで作成された証明書を確認する
最初のサーバーでMMC(Microsoft Management Console)を開きます。MMCを開くには、次のように入力します。 mmc (PowerShell内)。
WindowsのGUI(グラフィカル・ユーザー・インターフェイス)で証明書を管理するために、MMCに新しいスナップインを追加します。
クリック File > Add/Remove Snap-in…

開いたウィンドウの左ペイン("利用可能なスナップイン")で、[ Certificates、そしてクリック Add.

ポップアップウィンドウで、[ ] を選択してください Computer account、そしてクリックして Next.

退室 Local computer が選択されている(デフォルトで選択されています)状態で、 Finish.

証明書(ローカルコンピュータ) これで、ウィンドウの右ペイン([選択されたスナップイン])に表示されるはずです。
内の スナップインの追加または削除 ウィンドウ、クリック OK (スナップインはすでに選択されています)。

追加したスナップインをMMCに保存できます。
クリック File > Save as.
ファイル名を入力してください。例: Certificates1.msc.
へ移動 Certificates (Local Computer) / Personal / Certificates. 以前PowerShellで作成した2つの証明書が表示されるはずです―― Hyper-v-prim.test.net そして Hyper-v-repl.test.net.

証明書をダブルクリックすると、その詳細が表示されます。2台目のサーバーの証明書(Hyper-v-repl.test.net)は現在、信頼されていません。

移動 Certificates (Local Computer) / Intermediate Certification Authorities / Certificates. 探す CertReq Test Root 業務を行うために必要な証明書です。この証明書をダブルクリックすると、詳細を確認できます。 CAルート証明書 信頼されていません。

をコピーして CertReq Test Root 発行元 Intermediate Certification Authorities / Certificates ~へ Trusted Root Certification Authorities/Certificates 証明書を信頼できるようにするには、証明書を選択し、 Ctrl+C コピーして Ctrl+V 貼り付ける。

その CertReq Test Root 証明書は次の場所に配置する必要があります Trusted Root Certification Authorities / Certificates (下のスクリーンショットに示されているように)。

以下の場所にある証明書を確認してください Personal/Certificates もう一度。まず、レプリカサーバーの証明書を確認します(Hyper-v-repl.test.net)。これで証明書は信頼されるようになり、有効期限は 概要 タブ。これで、WindowsでSSL証明書の有効期限を確認する方法もわかりましたね。

証明書のその他のパラメータについては、 詳細 タブ(拡張キー使用法)および 認定取得までの流れ タブ。この証明書は問題ありません。

次に、レプリカサーバーの証明書を確認したのと同じ手順で、プライマリサーバーの証明書を確認してください。

プライマリサーバー用に証明書を設定しました(Hyper-v-prim.test.net)、そして次に、2台目のサーバーで証明書の設定を行う必要があります。必要な証明書を2台目のサーバーにコピーする必要があります(Hyper-v-repl.test.net) レプリカを保存する場所。これを行うには、証明書をエクスポートしてください。
最初のサーバーから証明書をエクスポートする
最初のサーバーで、2番目のサーバーに必要な証明書を選択します(Hyper-v-repl.test.net)は、 Personal/Certificates. 証明書を右クリックし、コンテキストメニューから All Tasks > Export.

"証明書エクスポートウィザード"が開きます。
1. Welcomeウェルカム画面では設定する必要はありません。クリックしてください Next 各ステップで続行するには。
2. Export Private Key. 選択 Yes, export the private key.
3. Export File Format. 選択 Personal Information Exchange – PKCS #12 (.PFX)、そして選択して Include all certificates in the certification path if possible.

4. Security. セキュリティを確保し、秘密鍵を保護するために、パスワードを入力してください。
5. File to Export. エクスポートするファイルの名前と保存先を指定します。例えば、 C:tempHyper-v-repl.pfx

6. Completing the Certificate Export Wizard設定を確認し、[実行]をクリックしてください Finish.
以下のメッセージが表示されるはずです: エクスポートは正常に完了しましたつまり、すべてが順調だということです。
最初のサーバーからルート証明書をエクスポートする
2つの証明書がエクスポートされました。次に、同じ手順でルート証明書をエクスポートしてください。操作は最初のサーバーで行います(Hyper-v-prim.test.net).
を選択してください CertReq Test Root 証明書は次の場所にあります Trusted Root Certification Authorities / Certificates.
証明書を右クリックし、[クリック] を選択します All Tasks > Export.

"証明書エクスポートウィザード"が開きます。
1. Welcome. ヒット Next 続きを読む。
2. Export File Format. 使用する形式を選択してください:
DER encoded binary X.509 (.CER)
3. File to Export. ファイルを保存するファイル名とパスを入力してください。例: C:temptestRoot.cer

4. Completing the Certificate Export Wizard設定を確認し、エクスポートを完了します。
証明書は次の場所にエクスポートされます Hyper-v-repl.pfx そして TestRoot.cer 現在、以下の場所にあるファイル C:temp 最初のサーバーで。

エクスポートした証明書を2台目のサーバーにコピーする
エクスポートした2つの証明書ファイルをコピーします(Hyper-v-repl.pfx そして TestRoot.cer) を最初のサーバーから2番目のサーバーへコピーします。
ファイルを C:temp 2台目のサーバー上。
ネットワークパスを使用できます Hyper-v-replC$ または 192.168.101.213C$ ネットワーク経由で証明書をコピーするには(この例では、192.168.101.213 がレプリカサーバーの IP アドレスです)。ファイアウォールの設定で、SMB プロトコルによる接続が許可されている必要があります。
2台目のサーバーへの証明書のインポート
証明書をレプリカサーバーにコピーしたら、これらの証明書をレプリカサーバーにインポートする必要があります。
プライマリサーバーで行ったのと同じように、レプリカサーバー(2台目のサーバー)でMMCを開きます。
MMCウィンドウでスナップインを追加します。
クリックします File > Add/Remove Snap In.
選択 Certificates, click Add.
選択 Computer account、そして選択して Local Computer
ヒット OK.
Windows GUIでこのスナップインを開くショートカットとして、WindowsのコマンドプロンプトまたはPowerShellで次のコマンドを使用できます:
certlm.msc
このコマンドを実行すると、Windows 証明書マネージャー(証明書管理コンソール)が開き、ローカル マシンの証明書を設定できます。
へ移動 Certificates (Local Computer) / Personal.
空白部分を右クリックし、コンテキストメニューから All tasks > Import.

"証明書インポートウィザード"が開きます。
1. Welcome. 選択 Local machine.
2. File to Import. 閲覧する Hyper-v-repl.pfx ファイル。クリック Browse、すべてのファイルを表示するように選択し、選択 Hyper-v-repl.pfx
3. Private key protection. 証明書をエクスポートする際に設定したパスワードを入力してください。

4. Certificate Storeすべての証明書を次のストアに配置します:
証明書ストア: Personal
5. Completing the Certificate Import Wizard設定を確認し、[実行]をクリックしてください Finish.

すべてが正しければ、次のようなメッセージが表示されるはずです: インポートは正常に完了しました.
さて、 Hyper-v-repl.test.net 証明書は次の場所にあります Certificates (Local Computer) / Personal / Certificates レプリカサーバー(2台目のサーバー)上で。今回のケースでは、 CertReq Test Root 証明書もこの場所にインポートされています。

その CertReq Test Root 証明書は次の場所に配置する必要があります Trusted Root Certification Authorities / Certificatesこの証明書を必要な場所にコピーしてください。インポートすることもできます TestRoot.cer インポートしたときと同じように手動で Hyper-v-repl.pfx

証明書の失効確認
デフォルトでは証明書失効チェックが必須となっている点に注意してください。また、Windows Server 2012 では、自己署名証明書の失効チェックはサポートされていません。このため、テスト用証明書については、証明書失効チェックを無効にする必要があります。両方のマシンで Windows レジストリに設定を追加してください。管理者として CMD または PowerShell で次のコマンドを実行してください。
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualizationReplication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
![]()
コンピュータを再起動する必要があるかもしれません。
ホスト名の解決
録音を hosts 両方のマシンで (C:Windowssystem32driversetchosts) ファイルを編集し、ワークグループ環境(マシンが Active Directory ドメインのメンバーではない場合)でホスト名を IP アドレスに変換できるようにします。今回のケースでは、両方のサーバーの hosts ファイルに以下の行を追加します:
192.168.101.209 Hyper-v-prim.test.net
192.168.101.213 Hyper-v-repl.test.net

レプリカサーバーでのレプリケーション設定
VMのレプリカを保存する2台目のサーバーで、以下の操作を実行します。
Hyper-V マネージャーを開きます。
レプリカサーバーを右クリックし(Hyper-v-repl.test.net (当方のケースでは)、そしてコンテキストメニューで Hyper-V Settings.
の左ペインで Hyper-V の設定 ウィンドウで、[選択] をクリックします Replication Configuration.
以下のチェックボックスにチェックを入れてください Replication Configuration:
Enable this computer as a Replica serverUse certificate-based Authentication (HTTPS)
クリック Select Certificate.

その Windowsのセキュリティ ポップアップウィンドウに証明書に関する情報が表示されます。"OK"をクリックして、この証明書を選択してください。

で レプリケーション構成、を選択して Allow replication from the specified servers、オプションキーを押しながらクリック Add.
パラメータを 認証エントリを追加 window.
プライマリサーバーを指定します: Hyper-v-prim.test.net
レプリカファイルを保存するデフォルトの場所を指定してください: C:Hyper-VVirtual Hard Disks (これは一例です。C: 以外の任意の場所を指定してください)
信頼グループを指定します: replication

Windows ファイアウォールの設定
ファイアウォールを設定して、着信トラフィックを許可してください。レプリカサーバーのポート443で着信TCP接続を有効にしてください(または、テスト目的で一時的にファイアウォールを無効にしてください)。
Enable-Netfirewallrule -displayname "Hyper-V Replica HTTPS Listener (TCP-In) "
netsh advfirewall firewall show rule name=all dir=in | find "Hyper-V "
最初のサーバーでのレプリケーションの設定
レプリケーションを行うプライマリHyper-Vサーバー上にVMを作成します。レプリケーションを有効にする前に、ソースVMにスナップショットが存在しないことを確認してください。最初のマシン(プライマリサーバー)でレプリケーションを有効にします(Hyper-v-prim.test.net (今回のケースでは)。
VMを右クリックし、コンテキストメニューから Enable Replication.

その レプリケーションを有効にする ウィザードが開きます。
Before you Begin. ヒット Next 続きを読む。
Specify Replica Server. レプリカサーバーの名前を入力してください。ここでは、 Hyper-v-repl.test.net レプリカサーバーとして。

Specify Connection Parameters. 選択 Use certificate-based authentication (HTTPS)、そしてクリック Select Certificate.

クリックすると Select Certificateすると、以前に設定した証明書の詳細が表示されたポップアップウィンドウが開きます。クリック OK この証明書を使用するには。

その他のレプリケーション設定を通常通り行い、ソースサーバーでのレプリケーション設定を完了してください。
Choose Replication VHDs. レプリケーションが必要なVMの仮想ディスクを選択します。すべてのVM仮想ディスクを選択することも、一部のディスクのみを選択することもできます。

Configure Replication Frequency. レプリカサーバーへの変更の送信頻度を選択します。例えば、 5 minutes.

Configure additional recovery points for this virtual machineこの例では、1時間ごとのリカバリポイントを追加で作成することにしました。ご自身のニーズに合わせて適切なオプションを選択してください。リカバリポイントは、増分レプリケーション(スナップショットベース)によって作成されます。

Choose Initial Replication Method. 選択 Send initial copy over the network.

ヒット Finish ワークグループ環境で証明書を使用してネイティブ Hyper-V レプリケーションの設定を完了し、ウィザードを閉じます。
ネイティブHyper-Vレプリケーションの代替手段
レプリケーションを実行するためのHyper-Vの組み込み機能は便利です。しかし、Hyper-Vのレプリケーションや仮想マシンのフェイルオーバーを行うために、より高度な機能が必要になる場合もあります。ネイティブのHyper-Vレプリケーションに代わる優れた選択肢があります。
NAKIVO Backup & Replication Hyper-V仮想マシンのバックアップやVMのフェイルオーバーを実行できる、汎用的なデータ保護ソリューションです。本製品は、Active Directoryドメインおよびワークグループ環境におけるHyper-Vレプリケーションに対応しています。以下の機能が含まれています:
- アプリケーションを意識したレプリケーション。仮想マシン内で実行されているMicrosoft Volume Shadow Copy (VSS) サービスを利用するため、稼働中のVMをレプリケートする場合、VMレプリカ内のデータは一貫性を保ちます。
- MicrosoftのResilient Change Tracking(RCT)を利用した増分レプリケーションにより、ディスク容量と時間を節約できます。レプリケーションジョブを初めて実行する際にはソースVMの全データがコピーされ、その後はVMレプリカの適切なリカバリポイントを作成することで、変更されたデータのみがコピーされます。
- 柔軟な保持設定と GFSの保存ポリシー. さまざまな期間にわたる幅広い復旧ポイントを保持し、バックアップリポジトリで使用されるストレージ容量を最適化します。
- ネットワーク高速化機能は、データ圧縮を活用してレプリケーションの速度を向上させ、時間を節約します。
- データベースを実行しているHyper-V仮想マシンをレプリケートする際、ストレージ容量を節約するために、Microsoft ExchangeおよびSQLのログを切り詰める。
- 仮想マシンの自動フェイルオーバーにより、短時間で仮想マシンを復旧させることができます。
- サイト復旧 Hyper-V仮想マシンのレプリケーションやフェイルオーバーなど、複数のアクションを含む複雑な災害復旧シナリオを作成できます。
物理サーバーのバックアップからVMへマシンを復元したり、Hyper-V VMのバックアップからVMware VMへ復元したりすることができます。災害が発生してからでは手遅れです。今すぐダウンロードしてください NAKIVO Backup & Replication 今すぐHyper-V仮想マシンを保護しましょう!
結論
Hyper-V レプリケーションは、Hyper-V 仮想マシンを保護し、障害発生後でも短時間でデータやワークロードを復旧できるようにするために重要です。Hyper-V サーバーが Active Directory ドメインのメンバーではなく、ワークグループに所属している場合、ドメイン外環境で Hyper-V レプリケーションを設定する必要がある場合があります。
ワークグループ環境で Hyper-V 仮想マシンをレプリケートするには、自己署名証明書を作成し、これらの証明書を使用して Hyper-V サーバーの認証を設定する必要があります。この設定は、Hyper-V ホストで仮想マシンのレプリケーションを設定する前に、ホスト名、ファイアウォール、および証明書失効確認に適用されます。