共用方式為


管理軟體定義網路的憑證

適用於:Azure Stack HCI 版本 23H2 和 22H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

本文說明當您部署軟體定義網路 (SDN) ,以及當您使用 System Center Virtual Machine Manager (SCVMM) 作為 SDN 管理用戶端時,如何管理網路控制站 Northbound 和 Southbound 通訊的憑證。

注意

如需網路控制器的概觀資訊,請參閱網路控制器

如果您未使用 Kerberos 來保護網路控制站通訊,您可以使用 X.509 憑證進行驗證、授權和加密。

Windows Server 2019 和 2016 Datacenter 中的 SDN 都支援自我簽署和憑證授權單位 (CA) 簽署的 X.509 憑證。 本主題提供建立這些憑證並將其套用至安全網路控制站北向通訊通道的逐步指示,以及使用管理用戶端與網路裝置的南向通訊,例如軟體負載平衡器 (SLB)。

當您使用憑證式驗證時,必須在網路控制站節點上註冊一個憑證,以下列方式使用。

  1. 使用網路控制站節點與管理用戶端 (例如 System Center Virtual Machine Manager) 之間的安全通訊端層 (SSL) 加密北向通訊。
  2. 網路控制站節點與南向裝置和服務之間的驗證,例如 Hyper-V 主機和軟體負載平衡器 (SLB)。

建立和註冊 X.509 憑證

您可以建立並註冊自我簽署憑證或 CA 所核發的憑證。

注意

當您使用 SCVMM 來部署網路控制站時,您必須指定 X.509 憑證,以在設定網路控制站服務範本期間用來加密 Northbound 通訊。

憑證設定必須包含下列值。

  • RestEndPoint 文字方塊的值必須是網路控制站完整網域名稱 (FQDN) 或 IP 位址。
  • RestEndPoint 值必須符合 X.509 憑證的主體名稱 (一般名稱、CN)。

建立自我簽署 X.509 憑證

對於網路控制站的單一節點和多節點部署,您可以按照以下步驟建立自我簽署的 X.509 憑證,並使用私密金鑰 (受密碼保護) 進行匯出。

當您建立自我簽署憑證時,可以使用下列指導方針。

  • 您可以針對 DnsName 參數使用網路控制站 REST 端點的 IP 位址,但不建議這麼做,因為它需要網路控制站節點全都位於單一管理 (子網內,例如,在單一機架)
  • 針對多節點網路控制站部署,您指定的 DNS 名稱將會變成網路控制站叢集的 FQDN, (DNS 主機 A 記錄會自動建立。)
  • 針對單一節點網路控制站部署,DNS 名稱可以是網路控制站的主機名稱,後面接著完整的網域名稱。

多個節點

您可以使用 New-SelfSignedCertificate Windows PowerShell 命令來建立自我簽署憑證。

語法

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "<YourNCComputerName>" -DnsName @("<NCRESTName>")

使用方式範例

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "MultiNodeNC" -DnsName @("NCCluster.Contoso.com")

單一節點

您可以使用 New-SelfSignedCertificate Windows PowerShell 命令來建立自我簽署憑證。

語法

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "<YourNCComputerName>" -DnsName @("<NCFQDN>")

使用方式範例

New-SelfSignedCertificate -KeyUsageProperty All -Provider "Microsoft Strong Cryptographic Provider" -FriendlyName "SingleNodeNC" -DnsName @("SingleNodeNC.Contoso.com")

建立 CA 簽署的 X.509 憑證

若要使用 CA 建立憑證,您必須已使用 Active Directory 憑證服務 (AD CS) 部署公開金鑰基礎結構 (PKI)。

注意

您可以使用 opensl 之類的協力廠商 CA 或工具來建立憑證以與網路控制站搭配使用,不過此主題中的指示是 AD CS 專屬的。 若要瞭解如何使用第三方 CA 或工具,請參閱您所使用軟體的檔。

使用 CA 建立憑證包含下列步驟。

  1. 您或貴組織的網域或安全性系統管理員會設定證書範本。
  2. 您或您組織的網路控制站管理員或 SCVMM 系統管理員會向 CA 要求新的憑證。

憑證設定需求

當您在下一個步驟中設定證書範本時,請確定您設定的範本包含下列必要元素。

  1. 憑證主體名稱必須是 Hyper-V 主機的 FQDN
  2. 憑證必須放在本機電腦個人存放區 (My – cert:\localmachine\my)
  3. 憑證必須同時擁有伺服器驗證 (EKU:1.3.6.1.5.5.7.3.1) 和用戶端驗證 (EKU:1.3.6.1.5.5.7.3.2) 應用程式原則。

注意

如果 Hyper-V 主機上的個人 (My – cert:\localmachine\my) 憑證存放區具多個使用主體名稱 (CN) 作為主機完整網域名稱 (FQDN) 的 x.509 憑證,請確定 SDN 將使用的憑證有具有 OID 1.3.6.1.4.1.311.95.1.1.1 的其他自訂增強金鑰使用方法屬性。 否則,網路控制卡與主機之間的通訊可能無法正常執行。

設定憑證範本

注意

執行此程序之前,您應該先檢閱 [憑證範本] 主控台中的憑證需求和可用的憑證範本。 您可以修改現有的範本,或建立現有範本的複本,然後修改範本的複本。 建議建立現有範本的複本。

  1. 在安裝 AD CS 的伺服器上,在伺服器管理員中,按一下 [工具],然後按一下 [憑證授權單位單位]。 會開啟憑證授權單位 Microsoft Management Console (MMC)。
  2. 在 MMC 中,按兩下 CA 名稱,在 [憑證範本] 上按一下滑鼠右鍵,然後按一下 [管理]。
  3. 會開啟憑證範本主控台。 所有的憑證範本都會顯示在詳細資料窗格中。
  4. 在詳細資料窗格中,按一下您要複製的範本。
  5. 按一下 [動作] 功能表,然後按一下 [複製範本]。 會開啟範本 [屬性] 對話方塊。
  6. 在範本 [屬性] 對話方塊中的 [主體名稱] 索引標籤上,按一下 [在要求中提供]。 (網路控制站 SSL 憑證需要此設定。)
  7. 在範本 [屬性] 對話方塊中的 [要求處理] 索引標籤上,確定已選取 [允許匯出私密金鑰]。 也請確定已選取 [簽章及加密] 用途。
  8. 在範本 [屬性] 對話方塊中的 [延伸] 索引標籤上,選取 [金鑰使用方式],然後按一下 [編輯]。
  9. 在 [簽章] 中,確定已選取 [數位簽章]。
  10. 在範本 [屬性] 對話方塊中的 [延伸] 索引標籤上,選取 [應用程式原則],然後按一下 [編輯]。
  11. 在 [應用程式原則] 中,確定已列出 [用戶端驗證] 和 [伺服器驗證]。
  12. 以唯一名稱儲存憑證範本的複本,例如網路控制站範本

若要從 CA 要求憑證

您可以使用憑證嵌入式管理單元來要求憑證。 只要是已預先設定,並且已由處理該憑證要求的 CA 之系統管理員所開放的任何憑證類型,您都可以進行要求。

使用者 或本機系統管理員 是完成此程序必要的最低群組成員資格。

  1. 針對電腦開啟憑證嵌入式管理單元。
  2. 在主控台樹狀目錄中,按一下 [憑證 (本機電腦)]。 選取 [個人] 憑證存放區。
  3. 在 [動作] 功能表上,指向** [所有工作],然後按一下 [要求新憑證] 以啟動 [憑證註冊精靈]。 按一下 [下一步] 。
  4. 選取系統管理員所設定的 [憑證註冊原則],然後按一下 [下一步]。
  5. 選取 [Active Directory 註冊原則] (根據您在上一節中設定的 CA 範本)。
  6. 展開 [詳細資料] 區段並設定下列項目。
  7. 確定金鑰使用方式包含數位簽章 ** 和 ** 金鑰加密
  8. 確定應用程式原則同時包含伺服器驗證 (1.3.6.1.5.5.7.3.1) 和用戶端驗證 (1.3.6.1.5.5.7.3.2)。
  9. 按一下 [屬性]
  10. 在 [主體] 索引標籤上的 [主體名稱] 中,在 [類型] 中選取 [一般名稱]。 在 [值] 中,指定 [網路控制站 REST 端點]。
  11. 按一下 [套用],然後按一下 [確定]
  12. 按一下 \[註冊\]

在 [憑證 MMC] 中,按一下個人存放區,以檢視您從 CA 註冊的憑證。

將憑證匯出並複製到 SCVMM 連結庫

在建立自我簽署或 CA 簽署憑證之後,您必須從憑證嵌入式管理單元匯出具有私密金鑰 (.pfx 格式) 和不具私密金鑰 (Base-64 .cer 格式) 的憑證。

然後,您必須將兩個匯出的檔案複製到您匯入 NC 服務範本時所指定的 ServerCertificate.crNCCertificate.cr 資料夾。

  1. 開啟 [憑證] 嵌入式管理單元 (certlm.msc),然後在本機電腦的個人憑證存放區中找到憑證。
  2. 以滑鼠右鍵按一下憑證,然後依序按一下 [所有工作][匯出]。 [憑證匯出精靈] 隨即開啟。 按一下 [下一步] 。
  3. 選取 [是],匯出私密金鑰選項,按一下 [下一步]。
  4. 選擇 [個人資訊交換 - PKCS #12 (.PFX)],然後接受 [如果可能的話,包含憑證路徑中的所有憑證] 此預設值。
  5. 指派您要匯出之憑證的使用者/群組和密碼,然後按 [下一步]。
  6. 在 [要匯出的檔案] 頁面上,瀏覽您要放置匯出檔案的位置,並指定其名稱。
  7. 同樣地,以 .CER 格式匯出憑證。 注意︰若要匯出為 .CER 格式,請取消核取 [是,匯出私密金鑰] 選項。
  8. 將 .PFX 複製到 ServerCertificate.cr 資料夾。
  9. 將 .CER 檔案複製到 NCCertificate.cr 資料夾。

完成後,請在SCVMM連結庫中重新整理這些資料夾,並確定您已複製這些憑證。 繼續進行網路控制站服務範本設定和部署。

驗證南向裝置和服務

與主機和 SLB MUX 裝置的網路控制站通訊會使用憑證進行驗證。 與主機的通訊是透過 OVSDB 通訊協定,而與 SLB MUX 裝置的通訊則是透過 WCF 通訊協定。

與網路控制站的 Hyper-V 主機通訊

若要透過 OVSDB 與 Hyper-V 主機通訊,網路控制站必須向主機電腦出示憑證。 根據預設,SCVMM 會挑選在網路控制站上設定的 SSL 憑證,並將其用於與主機的南向通訊。

這就是為什麼 SSL 憑證必須設定用戶端驗證 EKU 的原因。 此憑證是在「伺服器」REST 資源上設定,(Hyper-V 主機在網路控制器中會以伺服器資源的形式表示),而且可以執行 Windows PowerShell 命令 Get-NetworkControllerServer 來加以檢視。

以下是伺服器 REST 資源的部分範例。

   "resourceId": "host31.fabrikam.com",
      "properties": {
        "connections": [
          {
            "managementAddresses": [
               "host31.fabrikam.com"
            ],
            "credential": {
              "resourceRef": "/credentials/a738762f-f727-43b5-9c50-cf82a70221fa"
            },
            "credentialType": "X509Certificate"
          }
        ],

若要進行相互驗證,Hyper-V 主機也必須有憑證才能與網路控制站通訊。

您可以向憑證授權單位 (CA) 註冊憑證。 如果主機電腦上找不到 CA 型憑證,SCVMM 會建立自我簽署憑證,並在主機電腦上佈建憑證。

網路控制站和 Hyper-V 主機憑證必須彼此信任。 Hyper-V 主機憑證的根憑證必須存在於本機電腦的網路控制站受信任的根憑證授權單位存放區中,反之亦然。

當您使用自我簽署憑證時,SCVMM 可確保本機電腦的受信任根憑證授權單位存放區中有必要的憑證。

如果您針對 Hyper-V 主機使用 CA 型憑證,您必須確定 CA 跟證書存在於本機電腦的網路控制站信任跟證書授權單位存放區上。

與網路控制站的軟體 Load Balancer MUX 通訊

軟體負載平衡器 Multixor (MUX) 和網路控制站會透過 WCF 通訊協定進行通訊,並使用憑證進行驗證。

根據預設,SCVMM 會挑選在網路控制站上設定的 SSL 憑證,並使用其來與 Mux 裝置進行南向通訊。 此憑證是在「NetworkControllerLoadBalancerMux」REST 資源上設定,而且可以執行 PowerShell Cmdlet Get-NetworkControllerLoadBalancerMux 來加以檢視。

MUX REST 資源 (部分) 的範例:

      "resourceId": "slbmux1.fabrikam.com",
      "properties": {
        "connections": [
          {
            "managementAddresses": [
               "slbmux1.fabrikam.com"
            ],
            "credential": {
              "resourceRef": "/credentials/a738762f-f727-43b5-9c50-cf82a70221fa"
            },
            "credentialType": "X509Certificate"
          }
        ],

若要進行相互驗證,您也必須在 SLB MUX 裝置上擁有憑證。 當您使用 SCVMM 部署軟體負載平衡器時,SCVMM 會自動設定此憑證。

重要

在主機和 SLB 節點上,受信任的根憑證授權單位憑證存放區並不包含任何「發行至」的憑證,與「發行者」不同。 如果發生這種情況,網路控制站與南向裝置之間的通訊會失敗。

網路控制站和 SLB MUX 憑證必須彼此信任,(SLB MUX 憑證的根憑證必須存在於網路控制站機器受信任的根憑證授權單位存放區中,反之亦然)。 當您使用自我簽署憑證時,SCVMM 可確保本機電腦的受信任根憑證授權單位存放區中有必要的憑證。