如何为 Hyper-V 从 Windows 证书服务器请求 SSL 证书

Hyper-V 內建了從一個 Hyper-V 主機複製虛擬機到另一個主機的工具。這對於故障轉移非常有用。通常,Hyper-V 複製是在連接到活動目錄域和集群內的 Hyper-V 伺服器上配置的。然而,當運行 Hyper-V 的伺服器在工作組中時,也可以配置 Hyper-V 複製。為此,您需要證書。

本博客文章將解釋如何使用內建的 Windows Server 2016 工具來創建證書,以在工作組中配置 Hyper-V 複製。

為什麼要使用證書進行 Hyper-V

基於證書的複製允許您複製虛擬機,而無需將 Hyper-V 主機添加到 Windows 域或集群中。這個功能對於擁有三四台伺服器的小型公司特別有用,而且不想使用 Active Directory 部署集群並配置域。

在工作組中使用帶有證書的 Hyper-V 複製的另一個原因是安全性。如果參與 VM 複製過程的 Hyper-V 伺服器是域的成員,則只要使用者擁有 Active Directory 管理員帳戶的憑據,就可以完全控制這些 Hyper-V 伺服器。在某些不希望的情況下,例如勒索軟體攻擊,使用 AD 域管理員憑據,攻擊者可能會摧毀他們可以訪問的所有資源上的所有信息。這就是在某些情況下將用於 VM 複製的 Hyper-V 伺服器保留在工作組中可能更安全的原因。

Hyper-V 支援兩種類型的身份驗證:Kerberos 和 HTTPS 憑證。Kerberos 用於 Active Directory 網域中的電腦,而 HTTPS 憑證則用於非網域環境。當使用 HTTPS 安全連線時,會執行 SSL 憑證請求。

主要步驟概述

在開始詳細說明工作流程之前,讓我們列出應執行的配置 Hyper-V 複寫到工作組的主要步驟,並使用憑證。

  • 在兩個 Hyper-V 伺服器上配置主機名。必須啟用 Hyper-V 伺服器角色。
  • 在 Windows 防火牆中啟用 HTTPS 流量和所需的入站連線。
  • 在第一台伺服器上建立和配置憑證。匯出/匯入憑證。
  • 將憑證複製到第二台伺服器
  • 使用憑證在第二台伺服器上配置複寫。
  • 在第一台伺服器上配置複寫。虛擬機器不能有任何檢查點。

在我們的部落格文章中,我們使用兩台安裝了 Hyper-V 角色的 Windows Server 2016 機器。

配置伺服器主機名

讓我們從編輯主機名開始。為來源伺服器(主要伺服器)和副本伺服器(第二個伺服器或目標伺服器)配置 DNS 名稱。您應該添加主要的 DNS 後綴。使用完整合格的網域名稱(FQDN)是使用憑證所必需的。在我們的示例中,伺服器的名稱是:

Hyper-v-prim.test.net – 主要伺服器(第一個伺服器)

Hyper-v-repl.test.net – 複本伺服器(第二伺服器)

為了更改主機名稱,打開系統設置(右鍵單擊“我的電腦”或“此電腦”圖標),在“電腦名稱、域和工作組設置”部分,單擊“設置”。在“電腦名稱”選項卡中,單擊“更改”。然後在“電腦名稱/域更改”窗口中,輸入計算機名稱,選擇“工作組”(而不是域),單擊“更多”,並輸入計算機的主 DNS 後綴。如上所述,要使用憑證啟用 Hyper-V 主機的複寫,需要完整的具有 DNS 後綴的名稱。在我們的示例中,後綴是test.net。如果主機名稱是hyper-v-prim,主要伺服器的完全合格的域名是Hyper-v-prim.test.net

在下面的屏幕截圖中,您可以看到主要伺服器的計算機名稱配置。

一旦您在兩台伺服器上配置了主機名稱,您就可以開始在伺服器上創建憑證。

在主要伺服器上創建憑證

憑證可以使用多種方法來創建。通常使用命令行界面進行此操作。第一個選項是使用MakeCert工具創建自簽名憑證。現在MakeCert工具已被棄用,我們將使用另一個解決方案。

使用New-SelfSignedCertificate cmdlet作為MakeCert工具的現代替代品來創建自簽名憑證。

在主機(Hyper-v-prim.test.net)上,以 PowerShell(作為管理員)執行以下命令以生成證書:

New-SelfSignedCertificate -DnsName “Hyper-v-prim.test.net” -CertStoreLocation “cert:\LocalMachine\My” -TestRoot

New-SelfSignedCertificate -DnsName “Hyper-v-repl.test.net” -CertStoreLocation “cert:\LocalMachine\My” -TestRoot

然後檢查已創建的證書,並繼續配置伺服器。執行這些命令後必須創建三個證書(兩個伺服器證書和一個根證書)。

在 MMC 中檢查已創建的證書

在第一台伺服器上打開 MMC(Microsoft 管理控制台)。要打開 MMC,請在 PowerShell 中輸入 mmc

在 MMC 中添加一個新的插件以管理 Windows GUI(圖形用戶界面)中的證書。

點擊 檔案 > 添加/移除插件…

在打開的視窗的左窗格(可用的插件)中,選擇 證書,然後點擊 添加

在彈出窗口中,選擇 電腦帳戶,然後點擊 下一步

保持選擇 本地電腦(默認情況下已選中),然後點擊 完成

證書(本地電腦)現在應該顯示在窗口的右窗格(所選插件)中。

添加或移除插件 窗口中,點擊 確定(插件已選定)。

您可以在MMC中保存添加的插件。

单击文件 > 另存为

输入文件名,例如Certificates1.msc

转到证书(本地计算机)/ 个人/ 证书。您应该看到我们之前在PowerShell中创建的两个证书 – Hyper-v-prim.test.netHyper-v-repl.test.net

双击证书以查看证书详细信息。第二个服务器的证书(Hyper-v-repl.test.net)现在不受信任。

转到证书(本地计算机)/ 中间证书颁发机构/ 证书。找到所需的CertReq Test Root证书以使其正常工作。双击此证书以查看详细信息。CA根证书不受信任。

CertReq Test Root证书从中间证书颁发机构/ 证书复制到受信任的根证书颁发机构/ 证书以使证书受信任。选择证书,按Ctrl+C进行复制,然后按Ctrl+V进行粘贴。

必须将CertReq Test Root证书放置在受信任的根证书颁发机构/ 证书(如下面的屏幕截图所示)。

請再次檢查位於 個人/證書 中的證書。首先,我們檢查複製服務器 (Hyper-v-repl.test.net) 的證書。該證書現在受信任,並且具有您可以在 常規 標籤中看到的證書到期日期。現在您也知道如何在 Windows 中檢查 SSL 證書的到期日期。

檢查 詳細資料 標籤(擴展金鑰用途)和 認證路徑 標籤中的證書的其他參數。這個證書是正確的。

然後像檢查複製服務器的證書一樣檢查主服務器的證書。

我們已經為主服務器 (Hyper-v-prim.test.net) 配置了證書,現在我們需要在第二個服務器上配置證書。我們需要將所需的證書複製到第二個服務器 (Hyper-v-repl.test.net),這是複製將存儲的地方。為了做到這一點,請導出證書。

從第一台服務器導出證書

在第一台服務器上,選擇位於 個人/證書 中的第二台服務器 (Hyper-v-repl.test.net) 所需的證書。右鍵單擊該證書,在上下文菜單中單擊 所有任務 > 導出

證書導出向導會打開。

1. 歡迎。歡迎畫面無需進行任何配置。在每個步驟中按 下一步 繼續。

2. 導出私鑰。選擇 是,導出私鑰

3. 匯出檔案格式。選擇個人資訊交換 – PKCS #12(.PFX),並選擇如有可能,包括所有證書在認證路徑中

4. 安全性。輸入密碼以維護安全性並保護私鑰。

5. 要匯出的檔案。指定您要匯出的檔案的名稱和位置,例如,C:\temp\Hyper-v-repl.pfx

6. 完成憑證匯出精靈。檢查配置,然後點擊完成

您應該看到消息:匯出成功。這表示一切正常。

從第一台伺服器匯出根證書

已匯出兩張證書。現在您應該以同樣的方式匯出根證書。在第一台伺服器(Hyper-v-prim.test.net)上執行操作。

選擇位於受信任的根認證機構 / 證書中的CertReq Test Root證書。

右鍵點擊該證書,然後點擊所有任務 > 匯出

憑證匯出精靈將打開。

1. 歡迎。點擊下一步繼續。

2. 匯出檔案格式。選擇您想要使用的格式:

DER 編碼的二進位 X.509(.CER)

3. 匯出檔案 輸入要儲存檔案的檔案名稱和路徑,例如,C:\temp\testRoot.cer

4. 完成憑證匯出精靈。檢查配置並完成匯出。

憑證已匯出至位於第一個伺服器上的 Hyper-v-repl.pfxTestRoot.cer 檔案,目前位於 C:\temp\

將匯出的憑證複製到第二個伺服器

從第一個伺服器複製兩個匯出的憑證檔案(Hyper-v-repl.pfxTestRoot.cer)到第二個伺服器。

我們將檔案複製到第二個伺服器上的 C:\temp\

我們可以使用網路路徑 \\Hyper-v-repl\C$\\192.168.101.213\C$ 通過網路複製憑證(其中 192.168.101.213 是我們場景中複本伺服器的 IP 地址)。防火牆配置必須允許 SMB 協議的連接。

在第二個伺服器上匯入憑證

將憑證複製到複本伺服器後,您應該將這些憑證匯入到複本伺服器中。

在複本伺服器上(第二個伺服器)打開 MMC,就像在主伺服器上一樣。

在 MMC 視窗中添加一個搭載。

點擊 檔案 > 添加/移除搭載

選擇 憑證,然後點擊添加。

選擇電腦帳戶,並選擇本機電腦

點擊確定

作為在Windows GUI中打開此快照的快捷方式,您可以在Windows CMD或PowerShell中使用以下命令:

certlm.msc

此命令打開Windows證書管理器(證書管理控制台)以配置本機機器證書。

轉到證書(本機計算機)/ 個人

右鍵單擊空白處,在上下文菜單中,單擊所有任務 > 導入

證書導入精靈將打開。

1. 歡迎。選擇本地計算機

2. 要導入的文件。瀏覽Hyper-v-repl.pfx文件。單擊瀏覽,選擇顯示所有文件,並選擇Hyper-v-repl.pfx

3. 私鑰保護。輸入導出證書時設置的密碼。

4. 證書存儲。將所有證書放置在以下存儲中:

證書存儲:個人

5. 完成證書導入精靈。檢查配置,並點擊完成

如果一切正確,您應該看到消息:導入成功

現在,Hyper-v-repl.test.net 憑證位於複製伺服器(第二台伺服器)上的 證書(本機電腦)/ 個人 / 證書 中。在我們的情況下,CertReq Test Root 憑證也已經匯入到這個位置。

必須將 CertReq Test Root 憑證放置在 信任的根憑證頒發機構 / 證書 中。將此憑證複製到所需位置。您可以像匯入 Hyper-v-repl.pfx 一樣手動匯入 TestRoot.cer

憑證吊銷檢查

請注意,預設情況下,憑證吊銷檢查是強制性的,而自簽名憑證在 Windows Server 2012 上不支援吊銷檢查。因此,您必須為測試憑證停用憑證吊銷檢查。在兩台機器上的 Windows 註冊表中添加設置。以管理員身份在 CMD 或 PowerShell 中執行以下命令。

reg add “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication” /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

您可能需要重新啟動機器。

解析主機名

在兩台機器上的 hosts 文件(C:\Windows\system32\drivers\etc\hosts)中添加記錄,以便在工作組中解析主機名到 IP 地址(當機器不是 Active Directory 域的成員時)。在我們的情況下,我們在兩個伺服器的 hosts 文件中添加了以下行:

192.168.101.209 Hyper-v-prim.test.net

192.168.101.213 Hyper-v-repl.test.net

在副本服务器上配置复制设置

在应存储虚拟机副本的第二个服务器上执行以下操作。

打开 Hyper-V 管理器。

右键单击副本服务器(在我们的情况下为 Hyper-v-repl.test.net),在上下文菜单中,点击 Hyper-V 设置

Hyper-V 设置 窗口的左窗格中,选择 复制配置

复制配置 中选中以下复选框:

  • 将此计算机作为副本服务器启用
  • 使用基于证书的身份验证(HTTPS)

点击 选择证书

弹出的 Windows 安全 窗口显示有关您证书的信息。点击确定选择此证书。

复制配置 中,选择 允许从指定服务器复制 选项,然后点击 添加

添加授权项 窗口中配置参数。

指定主服务器:Hyper-v-prim.test.net

指定存储副本文件的默认位置:C:\Hyper-V\虚拟硬盘\(这只是一个示例 – 使用非 C:上的自定义位置)

指定信任组:复制

配置 Windows 防火墙

配置防火墻以啟用入站流量。在複本伺服器上啟用 443 端口的入站 TCP 連接(或者暫時禁用防火牆進行測試)。

Enable-Netfirewallrule -displayname “Hyper-V 複本 HTTPS 監聽器(TCP-In)

netsh advfirewall firewall show rule name=all dir=in | find “Hyper-V

在第一台伺服器上配置複製

在主要的 Hyper-V 伺服器上創建一個虛擬機器進行複製。在啟用複製之前,請確保來源虛擬機器沒有任何快照。在第一台機器上啟用複製,這是主要伺服器 (Hyper-v-prim.test.net 在我們的情況下)。

右擊虛擬機器,在上下文菜單中,點擊 啟用複製

啟用複製 向導將會打開。

開始之前。點擊 下一步 繼續。

指定複製伺服器輸入您的複製伺服器的名稱。在我們的情況下,我們使用 Hyper-v-repl.test.net 作為複製伺服器。

指定連接參數。選擇 使用基於證書的驗證(HTTPS),然後點擊 選擇證書

點擊 選擇證書 後,會彈出一個包含您之前配置的證書詳細信息的彈出窗口。點擊 確定 使用此證書。

配置其他複製設置以完成源伺服器上的複製配置。

選擇複製的 VHDs。選擇必須複製的 VM 虛擬磁碟。您可以選擇所有 VM 虛擬磁碟或僅選擇其中一些。

配置複製頻率。選擇將更改發送到複本伺服器的頻率,例如,5 分鐘

為此虛擬機器配置額外的還原點。在我們的示例中,我們選擇創建額外的每小時還原點。選擇更符合您需求的選項。還原點是增量複製(基於快照)的結果。

選擇初始複製方法。選擇通過網絡發送初始副本

點擊完成以完成使用工作組中的憑證配置本機 Hyper-V 複製的向導,然後關閉向導。

本機 Hyper-V 複製的替代方案

內建的 Hyper-V 功能可進行複製非常有用。但有時您可能需要擴展功能來執行 Hyper-V 複製和虛擬機故障轉移。本機 Hyper-V 複製有一個很好的替代方案。

NAKIVO 備份與複製是一個通用的數據保護解決方案,可以備份 Hyper-V 虛擬機並執行 VM 故障轉移。該產品支持在活動目錄域和工作組中進行 Hyper-V 複製。以下功能已包括在內:

  • 應用感知複寫。由於在虛擬機器內運行微軟卷影複製(VSS)服務,VM 複本中的數據在複製運行中的虛擬機器時保持一致。
  • 使用微軟的強大變更跟蹤(RCT)進行增量複寫可節省磁盤空間和時間。複製作業的第一次運行將複製源 VM 的所有數據,然後只有通過為 VM 複本創建相應的恢復點來複製已更改的數據。
  • 靈活的保留設置和GFS 保留策略。保留不同時間段的廣泛恢復點,並優化備份存儲庫中使用的存儲空間。
  • 通過使用數據壓縮來提高複寫速度的網絡加速功能,節省您的時間。
  • 對於 Microsoft Exchange 和 SQL 的日誌截斷可節省 Hyper-V VM 在複製時運行數據庫的存儲空間。
  • 自動 VM 故障切換可讓您在短時間內恢復 VM。
  • 站點恢復可讓您創建包括 Hyper-V VM 複製和故障切換在內的多個操作的複雜災難恢復方案。

您可以從物理服務器備份還原機器到 VM,或將 Hyper-V VM 備份還原到 VMware VM。不要等待災難發生 – 立即下載 NAKIVO 備份與複寫,保護您的 Hyper-V VM!

結論

Hyper-V 複寫對保護 Hyper-V 虛擬機器並確保您可以在任何故障後快速恢復數據和工作負載至關重要。有時您可能需要在非域環境中配置 Hyper-V 複寫,當 Hyper-V 伺服器不是 Active Directory 域的成員並且屬於工作組時。您需要創建自簽名憑證來在工作組中複寫 Hyper-V VM,並使用這些憑證為 Hyper-V 伺服器配置身份驗證。在配置 Hyper-V 主機上的 VM 複寫之前,配置適用於主機名、防火牆和憑證撤銷檢查。

Source:
https://www.nakivo.com/blog/how-to-request-ssl-certificates-for-hyper-v/