如何從 Windows 憑證伺服器為 Hyper-V 申請 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 網域或叢集,即可進行虛擬機器複製。此特點對於擁有三至四台伺服器、且不希望部署叢集或使用 Active Directory 設定網域的小型企業特別實用。
在工作群組中使用基於憑證的 Hyper-V 複製的另一個原因是安全性。若參與虛擬機器複製流程的 Hyper-V 伺服器屬於某個網域,一旦使用者取得 Active Directory 管理員帳戶的憑證,這些 Hyper-V 伺服器便可能遭到完全控制。在某些不希望發生的情境下(例如勒索軟體攻擊),攻擊者若持有 AD 網域管理員憑證,便能摧毀其可存取資源上的所有資訊。 正因如此,在某些使用情境下,將用於虛擬機器複製的 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 – 複本伺服器(第二台伺服器)
若要變更主機名稱,請開啟系統設定(右鍵點擊"我的電腦"或"此電腦"圖示),然後在 電腦名稱、網域及工作群組設定 區段,點擊 Settings. 在 電腦名稱 分頁,點擊 Change. 接著在 電腦名稱/網域變更 視窗中,輸入電腦名稱,然後選取 Workgroup (非網域),請點擊 More,並輸入該電腦的主要 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:LocalMachineMy" -TestRoot
New-SelfSignedCertificate -DnsName "Hyper-v-repl.test.net" -CertStoreLocation "cert:LocalMachineMy" -TestRoot

接著檢查已建立的憑證,並繼續設定伺服器。執行這些指令後,必須建立三個憑證(兩個伺服器憑證和一個根憑證)。
在 MMC 中檢查已建立的憑證
在第一台伺服器上開啟 MMC(Microsoft 管理主控台)。要開啟 MMC,請輸入 mmc (在 PowerShell 中)。
在 MMC 中新增一個輔助程式,以便在 Windows 圖形使用者介面 (GUI) 中管理憑證。
點擊 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 中建立的兩份憑證—— Hyper-v-prim.test.net 以及 Hyper-v-repl.test.net.

雙擊憑證以查看憑證詳細資訊。第二台伺服器的憑證(Hyper-v-repl.test.net) 目前不被信任。

前往 Certificates (Local Computer) / Intermediate Certification Authorities / Certificates. 尋找 CertReq Test Root 這是 Prooper 運作所需的憑證。請雙擊此憑證以查看詳細資訊。該 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)。該憑證現已獲信任,其有效期限顯示於 概述 按 Tab 鍵。現在您也知道如何在 Windows 中檢查 SSL 憑證的到期日期了。

請在 詳細資訊 "標籤"(增強型金鑰用途)以及 認證路徑 標籤。此憑證有效。

接著,請按照檢查備份伺服器憑證的方式,檢查主伺服器的憑證。

我們已為主伺服器設定了憑證(Hyper-v-prim.test.net),現在我們需要在第二台伺服器上設定憑證。我們需要將所需的憑證複製到第二台伺服器上(Hyper-v-repl.test.net) 存放副本的位置。為此,請匯出憑證。
從第一台伺服器匯出憑證
在第一台伺服器上,選取第二台伺服器所需的憑證(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.
您應會看到以下訊息: 匯出成功這表示一切都沒問題。
從第一台伺服器匯出根憑證
已匯出兩份憑證。現在您應以相同方式匯出根憑證。相關操作將在第一台伺服器上執行(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 在第一台伺服器上。

將匯出的憑證複製到第二台伺服器
請複製這兩個已匯出的憑證檔案(Hyper-v-repl.pfx 以及 TestRoot.cer) 從第一台伺服器複製到第二台伺服器。
我們將檔案複製到 C:temp 在第二台伺服器上。
我們可以使用網路路徑 Hyper-v-replC$ 或 192.168.101.213C$ 透過網路複製憑證(在此案例中,192.168.101.213 為副本伺服器的 IP 位址)。防火牆設定必須允許 SMB 通訊協定的連線。
在第二台伺服器上匯入憑證
將憑證複製到備用伺服器後,您應將這些憑證匯入備用伺服器。
在備用伺服器(第二台伺服器)上開啟 MMC,操作方式與在主伺服器上相同。
在 MMC 視窗中新增一個輔助程式。
按一下 File > Add/Remove Snap In.
選取 Certificates, click Add.
選取 Computer account,然後選擇 Local Computer.
次點擊 OK.
若要在 Windows 圖形使用者介面中快速開啟此輔助程式,您可以在 Windows CMD 或 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 在複本伺服器(第二台伺服器)上。在我們的情況下,該 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

在複本伺服器上設定複寫設定
請在應儲存虛擬機器複本的第二台伺服器上執行以下操作。
開啟 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 安全性 彈出視窗會顯示有關您憑證的資訊。按下"確定"以選取此憑證。

在 複製設定,請選擇 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 伺服器上建立一個虛擬機器以進行複製。在啟用複製功能之前,請確保來源虛擬機器沒有任何快照。在第一台機器(即主要伺服器)上啟用複製功能(Hyper-v-prim.test.net (以我們的情況為例)。
右鍵點擊虛擬機器,然後在快顯選單中點選 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. 選取必須進行複製的虛擬機器虛擬磁碟。您可以選取所有虛擬機器虛擬磁碟,或僅選取其中部分。

Configure Replication Frequency. 選擇將變更傳送至複本伺服器的頻率,例如, 5 minutes.

Configure additional recovery points for this virtual machine. 在本範例中,我們選擇建立更多每小時的還原點。請選擇最符合您需求的選項。還原點是增量複製(基於快照)的結果。

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 虛擬機器並執行虛擬機器故障移轉。本產品支援在 Active Directory 網域及工作群組中執行 Hyper-V 複製。其包含以下功能性:
- 應用程式感知型複製。當您在虛擬機器處於運行狀態時進行複製,由於使用了在虛擬機器內部執行的 Microsoft 卷影複本 (VSS) 服務,因此虛擬機器副本中的資料將保持一致。
- 透過 Microsoft 的"彈性變更追蹤 (RCT)"進行增量複製,可協助您節省磁碟空間與時間。複製工作首次執行時會複製來源虛擬機器的所有資料,之後僅會複製變更過的資料,並為虛擬機器副本建立適當的還原點。
- 靈活的保留設定以及 GFS 保留政策. 為不同時間段保留多種還原點,並優化備份儲存庫中使用的儲存空間。
- 網路加速技術透過資料壓縮來提升複製速度,為您節省時間。
- 針對 Microsoft Exchange 和 SQL 執行日誌截斷,以在複製運行資料庫的 Hyper-V 虛擬機器時節省儲存空間。
- 透過自動虛擬機器故障移轉功能,您可在短時間內恢復虛擬機器。
- 站點還原 讓您能夠建立包含多項操作的複雜災難還原情境,包括 Hyper-V 虛擬機器複製與故障移轉。
您可以將實體伺服器的備份還原至虛擬機器,或將 Hyper-V 虛擬機器的備份還原至 VMware 虛擬機器。別等到災難發生才行動——立即下載 NAKIVO Backup & Replication 立即保護您的 Hyper-V 虛擬機器!
結論
Hyper-V 複製對於保護 Hyper-V 虛擬機器至關重要,並能確保您在發生任何故障後,能在短時間內恢復資料和工作負載。有時,當 Hyper-V 伺服器並非 Active Directory 網域的成員,而是屬於工作群組時,您可能需要在非網域環境中設定 Hyper-V 複製。
您需要建立自簽名憑證,以便在工作群組中複製 Hyper-V 虛擬機器,並使用這些憑證為 Hyper-V 伺服器設定驗證。在 Hyper-V 主機上設定虛擬機器複製之前,此設定適用於主機名稱、防火牆以及憑證撤銷檢查。