如何向 Windows 憑證伺服器申請 Hyper-V 所需的 SSL 憑證
Hyper-V 內建了可將虛擬機器從一台 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 後綴。正如上所述,完整 DNS 後綴名稱是讓 Hyper-V 主機使用憑證進行複寫所必需的。在我們的例子中,後綴是 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,請在 PowerShell 中輸入 mmc。
在 MMC 中添加一個新的 snap-in 以便在 Windows 圖形使用者介面中管理憑證。
點擊 File > Add/Remove Snap-in…

在打開的視窗左邊窗格(可用的 snap-ins)中,選擇 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 憑證以便正確作業。雙擊此憑證以查看詳情。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 憑證過期日期。

檢查其他憑證參數,在 詳細資訊 分頁(增強的金鑰使用方式)和 憑證路徑 分頁。這個憑證是 OK 的。

然後像檢查副本伺服器的憑證一樣檢查主伺服器的憑證。

我們為主伺服器設定了憑證( 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 GUI 中開啟該掛件的快捷方式,您可以在 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“。
在 的”新增授權項目” 視窗中設定參數。
指定主要伺服器: 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 虛擬機器並進行虛擬機器故障移轉。該產品支援活動目錄網域和工作組中的 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 主機上設定虛擬機器複製之前,需先針對主機名稱、防火牆以及憑證撤銷檢查進行相關設定。