取得 HGS 的憑證
部署 HGS 時,系統會要求您提供簽署和加密憑證,用來保護啟動受防護 VM 所需的機密資訊。 這些憑證永遠不會離開 HGS,而且只有在這些憑證執行所在的主機已證明其狀況良好時,才會用來解密受防護的 VM 金鑰。 租用戶 (VM 擁有者) 會使用半公開的憑證,授權您的資料中心執行其受防護的 VM。 本節涵蓋為 HGS 取得相容簽署和加密憑證所需的步驟。
向憑證授權單位要求憑證
雖然不需如此,但強烈建議您從受信任的憑證授權單位取得憑證。 這麼做可協助 VM 擁有者驗證其是否正在授權正確的 HGS 伺服器 (即服務提供者或資料中心) 執行其受防護的 VM。 在企業案例中,您可以選擇使用自己的企業 CA 來發出這些憑證。 主機服務提供者和服務提供者應考慮改用已知的公用 CA。
簽署和加密憑證都必須以下列認證屬性發出 (除非標記為「建議」):
憑證範本屬性 | 必要值 |
---|---|
密碼編譯提供者 | 任何金鑰儲存提供者 (KSP)。 不支援舊版密碼編譯服務提供者 (CSP)。 |
金鑰演算法 | RSA |
最小金鑰大小 | 2048 位元 |
簽章演算法 | 建議:SHA256 |
金鑰使用方式 | 數位簽章和資料加密 |
增強金鑰使用方式 | 伺服器驗證 |
金鑰更新原則 | 使用相同的金鑰更新。 使用不同金鑰更新 HGS 憑證可防止受防護的 VM 啟動。 |
主體名稱 | 建議:貴公司的名稱或網址。 此資訊將會在防護資料檔案精靈中顯示給 VM 擁有者。 |
無論您使用的是硬體還是軟體支援的憑證,這些需求都適用。 基於安全性原因,建議您在硬體安全性模組 (HSM) 中建立 HGS 金鑰,以防止從系統複製私密金鑰。 請遵循 HSM 廠商的指引,要求具有上述屬性的憑證,並確定在每個 HGS 節點上安裝並授權 HSM KSP。
每個 HGS 節點都需要存取相同的簽署和加密憑證。 如果您使用的是軟體支援的憑證,您可以將憑證匯出至具有密碼的 PFX 檔案,並允許 HGS 為您管理這些憑證。 您也可以選擇在每個 HGS 節點上將憑證安裝至本機電腦的憑證存放區,並將指紋提供給 HGS。 這兩個選項都會在初始化 HGS 叢集主題中加以說明。
建立測試案例的自我簽署憑證
如果您要建立 HGS 實驗室環境,而且沒有或不想要使用憑證授權單位,您可以建立自我簽署憑證。 在防護資料檔案精靈中匯入憑證資訊時,您會收到警告,但所有功能都會保持不變。
若要建立自我簽署憑證,並將其匯出至 PFX 檔案,請在 PowerShell 中執行下列命令:
$certificatePassword = Read-Host -AsSecureString -Prompt 'Enter a password for the PFX file'
$signCert = New-SelfSignedCertificate -Subject 'CN=HGS Signing Certificate' -KeyUsage DataEncipherment, DigitalSignature
Export-PfxCertificate -FilePath '.\signCert.pfx' -Password $certificatePassword -Cert $signCert
# Remove the certificate from "Personal" container
Remove-Item $signCert.PSPath
# Remove the certificate from "Intermediate certification authorities" container
Remove-Item -Path "Cert:\LocalMachine\CA\$($signCert.Thumbprint)"
$encCert = New-SelfSignedCertificate -Subject 'CN=HGS Encryption Certificate' -KeyUsage DataEncipherment, DigitalSignature
Export-PfxCertificate -FilePath '.\encCert.pfx' -Password $certificatePassword -Cert $encCert
# Remove the certificate from "Personal" container
Remove-Item $encCert.PSPath
# Remove the certificate from "Intermediate certification authorities" container
Remove-Item -Path "Cert:\LocalMachine\CA\$($encCert.Thumbprint)"
要求 SSL 憑證
Hyper-V 主機與 HGS 之間傳輸的所有金鑰和敏感性資訊都是在訊息層級加密,也就是說,資訊會以 HGS 或 Hyper-V 已知的金鑰加密,防止有人探查您的網路流量,並竊取 VM 的金鑰。 不過,如果您有合規性需求,或只是偏好加密 Hyper-V 與 HGS 之間的所有通訊,您可以使用 SSL 憑證來設定 HGS,這會加密傳輸層級的所有資料。
Hyper-V 主機和 HGS 節點都需要信任您提供的 SSL 憑證,因此建議您向企業憑證授權單位要求 SSL 憑證。 要求憑證時,請務必指定下列項目:
SSL 憑證屬性 | 必要值 |
---|---|
主體名稱 | HGS 用戶端 (也就是受防護主機) 將用來存取 HGS 伺服器的位址。 這通常是 HGS 叢集的 DNS 位址,稱為分散式網路名稱或虛擬電腦物件 (VCO)。 這會是提供給 Initialize-HgsServer 的 HGS 服務名稱與您 HGS 網域名稱的串連。 |
主體別名 | 如果您將使用不同的 DNS 名稱來聯繫您的 HGS 叢集 (例如,如果其位於負載平衡器後方,或是您要針對複雜拓撲中的節點子集使用不同的位址),請務必將這些 DNS 名稱包含在憑證要求的 SAN 欄位中。 請注意,如果填入了 SAN 延伸模組,則會忽略主體名稱,因此 SAN 應該包含所有值,包括您通常會放在主體名稱中的值。 |
設定第一個 HGS 節點中涵蓋了初始化 HGS 伺服器時用於指定此憑證的選項。 您也可以稍後使用 Set-HgsServer Cmdlet 來新增或變更 SSL 憑證。