為了讓金鑰提供者服務連線到金鑰提供者,必須建立受信任金鑰提供者,然後在 vSphere Trust Authority 叢集與金鑰伺服器 (KMS) 之間進行信任設定。對於大多數符合 KMIP 的金鑰伺服器,此設定程序包括設定用戶端和伺服器憑證。

之前在 vSphere 6.7 中稱為 KMS 叢集,現在在 vSphere 7.0 中稱為金鑰提供者。如需有關金鑰提供者的詳細資訊,請參閱什麼是 vSphere Trust Authority 金鑰提供者服務

在生產環境中,您可以建立多個金鑰提供者。透過建立多個金鑰提供者,您可以解決如何根據公司組織、不同的業務單位或客戶等管理部署的問題。

如果按順序執行這些工作,則仍會連線至 vSphere Trust Authority 叢集的 vCenter Server

必要條件

程序

  1. 確保您已連線至 Trust Authority 叢集的 vCenter Server。例如,您可以輸入 $global:defaultviservers 來顯示所有已連線的伺服器。
  2. (選擇性) 如有必要,您可以執行下列命令,以確保您已連線至 Trust Authority 叢集的 vCenter Server
    Disconnect-VIServer -server * -Confirm:$false
    Connect-VIServer -server TrustAuthorityCluster_VC_ip_address -User trust_admin_user -Password 'password'
  3. 若要建立受信任金鑰提供者,請執行 New-TrustAuthorityKeyProvider cmdlet。
    例如,此命令對 PrimaryKeyID 使用 1,並使用名稱 clkp。如果按順序執行這些工作,則先前已將 Get-TrustAuthorityCluster 資訊指派給變數 (例如 $vTA = Get-TrustAuthorityCluster 'vTA Cluster')。
    New-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA -PrimaryKeyId 1 -Name clkp -KmipServerAddress ip_address
    PrimaryKeyID 通常是來自金鑰伺服器的金鑰識別碼 (採用 UUID 形式)。請勿將金鑰名稱用於 PrimaryKeyID。PrimaryKeyID 值取決於廠商。請參閱金鑰伺服器說明文件。 New-TrustAuthorityKeyProvider cmdlet 可以採用其他選項,例如 KmipServerPortProxyAddressProxyPort。如需詳細資訊,請參閱 New-TrustAuthorityKeyProvider 說明系統。

    每個邏輯金鑰提供者 (無論其類型為標準、可信任還是本機) 都必須在所有 vCenter Server 系統中具有唯一的名稱。

    如需詳細資訊,請參閱 金鑰提供者命名

    備註: 若要將多個金鑰伺服器新增至金鑰提供者,請使用 Add-TrustAuthorityKeyProviderServer cmdlet。
    隨即顯示金鑰提供者資訊。
  4. 建立信任連線,使金鑰伺服器信任受信任金鑰提供者。確切程序取決於金鑰伺服器接受的憑證以及您的公司原則。選取適合您伺服器的選項,然後完成下列步驟。
    選項 請參閱
    上傳用戶端憑證 上傳用戶端憑證以建立受信任金鑰提供者信任連線.
    上傳 KMS 憑證和私密金鑰 上傳憑證和私密金鑰以建立受信任金鑰提供者信任連線.
    新增憑證簽署申請 建立憑證簽署要求以建立受信任金鑰提供者信任連線.
  5. 透過上傳金鑰伺服器憑證完成信任設定,以便受信任金鑰提供者信任金鑰伺服器。
    1. Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA 資訊指派給變數。
      例如:
      $kp = Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA

      此變數會取得指定 Trust Authority 叢集中受信任的金鑰提供者,在此案例中為 $vTA

      備註: 如果您有多個受信任金鑰提供者,請使用類似下列內容的命令根據需要進行選取:
      Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA
      <The trusted key providers listing is displayed.>
      $kp = Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA | Select-Object -Last 1
      

      使用 Select-Object -Last 1 會選取清單中的最後一個受信任金鑰提供者。

    2. 若要取得金鑰伺服器的伺服器憑證,請執行 Get-TrustAuthorityKeyProviderServerCertificate 命令。
      例如:
      Get-TrustAuthorityKeyProviderServerCertificate -KeyProviderServer $kp.KeyProviderServers
      隨即顯示伺服器憑證資訊。一開始,憑證不受信任,因此受信任狀態為 False。如果您已設定多個金鑰伺服器,將會傳回一份憑證清單。使用下列指示驗證並新增每個憑證。
    3. 信任憑證之前,請將 Get-TrustAuthorityKeyProviderServerCertificate -KeyProviderServer $kp.KeyProviderServers 資訊指派給變數 (例如 cert),然後執行 $cert.Certificate.ToString() 命令並確認輸出。
      例如:
      $cert = Get-TrustAuthorityKeyProviderServerCertificate -KeyProviderServer $kp.KeyProviderServers
      $cert.Certificate.ToString()
      隨即顯示憑證資訊,包括主旨、簽發者和其他資訊。
    4. 若要將 KMIP 伺服器憑證新增至受信任的金鑰提供者,請執行 Add-TrustAuthorityKeyProviderServerCertificate
      例如:
      Add-TrustAuthorityKeyProviderServerCertificate -ServerCertificate $cert
      
      此時會顯示憑證資訊,且現在受信任狀態為 True。
  6. 驗證金鑰提供者的狀態。
    1. 若要重新整理金鑰提供者狀態,請重新指派 $kp 變數。
      例如:
      $kp = Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA
      備註: 如果您有多個受信任金鑰提供者,請使用類似下列內容的命令根據需要進行選取:
      Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA
      <The trusted key providers listing is displayed.>
      $kp = Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA | Select-Object -Last 1
      

      使用 Select-Object -Last 1 會選取清單中的最後一個受信任金鑰提供者。

    2. 執行 $kp.Status 命令以取得金鑰提供者狀態。
      例如:
      $kp.Status
      備註: 可能需要幾分鐘的時間才會重新整理狀態。若要檢視狀態,請重新指派 $kp 變數,並重新執行 $kp.Status 命令。
    健全狀況狀態為 [正常] 表示金鑰提供者正在正常執行。

結果

受信任金鑰提供者隨即建立,並與金鑰伺服器建立了信任。

範例: 在 Trust Authority 叢集上建立金鑰提供者

此範例顯示如何使用 PowerCLI 在 Trust Authority 叢集上建立受信任的金鑰提供者。假設您以 Trust Authority 管理員身分連線至 Trust Authority 叢集的 vCenter Server。在向廠商提交 CSR 後,它還使用金鑰伺服器廠商簽署的憑證。

下表顯示了所使用的範例元件和值。

表 1. vSphere Trust Authority 設定範例
元件
變數 $vTA Get-TrustAuthorityCluster 'vTA Cluster'
變數 $kp Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA
變數 $cert Get-TrustAuthorityKeyProviderServerCertificate -KeyProviderServer $kp.KeyProviderServers
Trust Authority 叢集的 vCenter Server 192.168.210.22
符合 KMIP 的金鑰伺服器 192.168.110.91
符合 KMIP 的金鑰伺服器使用者 vcqekmip
Trust Authority 叢集名稱 vTA 叢集
Trust Authority 管理員 [email protected]
PS C:\Users\Administrator.CORP> Disconnect-VIServer -server * -Confirm:$false
PS C:\Users\Administrator.CORP> Connect-VIServer -server 192.168.210.22 -User [email protected] -Password 'VMware1!'

PS C:\Users\Administrator.CORP> New-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA -PrimaryKeyId 8 -Name clkp -KmipServerAddress 192.168.110.91
Name                 PrimaryKeyId         Type       TrustAuthorityClusterId
----                 ------------         ----       -----------------------
clkp                 8                    KMIP       TrustAuthorityCluster-domain-c8

PS C:\Users\Administrator.CORP> New-TrustAuthorityKeyProviderClientCertificate -KeyProvider $kp
<Export the client certificate when you need to use it.>
PS C:\Users\Administrator.CORP> Export-TrustAuthorityKeyProviderClientCertificate -KeyProvider $kp -FilePath clientcert.pem

PS C:\Users\Administrator.CORP> $kp = Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA
PS C:\Users\Administrator.CORP> Get-TrustAuthorityKeyProviderServerCertificate -KeyProviderServer $kp.KeyProviderServers

Certificate                              Trusted    KeyProviderServerId       KeyProviderId
-----------                              -------    -------------------       -------------
[Subject]...                             False      domain-c8-clkp:192.16.... domain-c8-clkp

PS C:\WINDOWS\system32> $cert.Certificate.ToString()
[Subject]
  E=<domain>, CN=<IP address>, OU=VMware Engineering, O=VMware, L=Palo Alto, S=California, C=US

[Issuer]
  O=<host>.eng.vmware.com, C=US, DC=local, DC=vsphere, CN=CA

[Serial Number]
  00CEF192BBF9D80C9F

[Not Before]
  8/10/2015 4:16:12 PM

[Not After]
  8/9/2020 4:16:12 PM

[Thumbprint]
  C44068C124C057A3D07F51DCF18720E963604B70

PS C:\Users\Administrator.CORP> $cert = Get-TrustAuthorityKeyProviderServerCertificate -KeyProviderServer $kp.KeyProviderServers
PS C:\Users\Administrator.CORP> Add-TrustAuthorityKeyProviderServerCertificate -ServerCertificate $cert

Certificate                              Trusted    KeyProviderServerId       KeyProviderId
-----------                              -------    -------------------       -------------
[Subject]...                             True                                 domain-c8-clkp

PS C:\Users\Administrator.CORP> $kp = Get-TrustAuthorityKeyProvider -TrustAuthorityCluster $vTA
PS C:\Users\Administrator.CORP> $kp.Status

KeyProviderId Health HealthDetails ServerStatus
------------- ------ ------------- ------------
domain-c8-kp4     Ok {}            {192.168.210.22}

下一步

繼續匯出 Trust Authority 叢集資訊