可以从 ESXi 主机中导出 TPM 认可密钥 (EK) 证书,然后将其导入 vSphere Trust Authority 集群。如果要信任受信任集群中的单个 ESXi 主机,需要执行此操作。

要将 TPM EK 证书导入到 Trust Authority 集群,必须将 Trust Authority 集群的默认证明类型更改为接受 EK 证书。默认证明类型接受 TPM 证书颁发机构 (CA) 证书。某些 TPM 不包含 EK 证书。如果要信任单个 ESXi 主机,TPM 必须包含一个 EK 证书。

注: 请将导出的 EK 证书文件存储在安全的位置,以防必须还原 vSphere Trust Authority 配置。

前提条件

过程

  1. 确保您已经以 Trust Authority 管理员身份连接到 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. 要更改 Trust Authority 集群的证明类型,请执行以下操作:
    1. 运行 Get-TrustAuthorityCluster cmdlet 以显示由此 vCenter Server 管理的集群。
      Get-TrustAuthorityCluster
      此时将显示这些集群。
    2. Get-TrustAuthorityCluster 信息分配给变量。
      例如,以下命令将名为 vTA Cluster 的集群分配给变量 $vTA
      $vTA = Get-TrustAuthorityCluster 'vTA Cluster'
    3. Get-TrustAuthorityTpm2AttestationSettings 信息分配给变量。
      例如,以下命令将信息分配给变量 $tpm2Settings
      $tpm2Settings = Get-TrustAuthorityTpm2AttestationSettings -TrustAuthorityCluster $vTA
    4. 运行 Set-TrustAuthorityTpm2AttestationSettings cmdlet,并指定 RequireEndorsementKey 和/或 RequireCertificateValidation
      例如,以下命令指定 RequireEndorsementKey
      Set-TrustAuthorityTpm2AttestationSettings -Tpm2AttestationSettings $tpm2Settings -RequireEndorsementKey
      系统将显示如下类似的确认提示响应。
      Confirmation
      Configure the Tpm2AttestationSettings 'TrustAuthorityTpm2AttestationSettings-domain-c8' with the following parameters:
       RequireCertificateValidation: False
       RequireEndorsementKey: True
      [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
    5. 在确认提示处,按 Enter。(默认值为 Y。)
      输出显示指定设置的状态为 True。例如,在以下输出中,需要认可密钥的状态显示为 True,需要证书验证的状态显示为 False。
      Name                                     RequireEndorsementKey          RequireCertificateValidation   Health
      ----                                     ---------------------          ----------------------------   ------
      TrustAuthorityTpm2AttestationSettings... True                           False                          Ok
  4. 要导出 TPM EK 证书,请执行以下操作:
    1. 与 Trust Authority 集群的 vCenter Server 断开连接。
      Disconnect-VIServer -server * -Confirm:$false
      
    2. 运行 Connect-VIServer cmdlet,以 root 用户身份连接到受信任集群中的某个 ESXi 主机。
      Connect-VIServer -server host_ip_address -User root -Password 'password'
    3. 运行 Get-VMHost cmdlet 以确认 ESXi 主机。
      Get-VMHost
      此时将显示主机信息。
    4. Get-VMHost 分配给变量。
      例如:
      $vmhost = Get-VMHost
    5. 运行 Export-Tpm2EndorsementKey cmdlet,导出 ESXi 主机的 EK 证书。
      例如,以下命令将 EK 证书导出到 tpm2ek.json 文件。
      Export-Tpm2EndorsementKey -VMHost $vmhost -FilePath C:\vta\tpm2ek.json
      将创建此文件。
  5. 要导入 TPM EK,请执行以下操作:
    1. 与受信任集群中的 ESXi 主机断开连接。
      Disconnect-VIServer -server * -Confirm:$false
      
    2. 使用 Trust Authority 管理员用户连接到 Trust Authority 集群的 vCenter Server
      Connect-VIServer -server TrustAuthorityCluster_VC_ip_address -User trust_admin_user -Password 'password'
    3. 运行 Get-TrustAuthorityCluster cmdlet。
      Get-TrustAuthorityCluster
      此时将显示 Trust Authority 集群中的集群。
    4. Get-TrustAuthorityCluster 'cluster' 信息分配给变量。
      例如,以下命令将集群 vTA Cluster 的信息分配给变量 $vTA
      $vTA = Get-TrustAuthorityCluster ‘vTA Cluster’
    5. 运行 New-TrustAuthorityTpm2EndorsementKey cmdlet。
      例如,以下命令使用之前在步骤 4 中导出的 tpm2ek.json 文件。
      New-TrustAuthorityTpm2EndorsementKey -TrustAuthorityCluster $vTA -FilePath C:\vta\tpm2ek.json
      此时将显示导入的认可密钥信息。

结果

Trust Authority 集群的证明类型更改为接受 EK 证书。EK 证书从受信任集群中导出并导入到 Trust Authority 集群。

示例: 导出和导入 TPM EK 证书

以下示例显示了如何使用 PowerCLI 将 Trust Authority 集群的默认证明类型更改为接受 EK 证书,从受信任集群中的 ESXi 主机导出 TPM EK 证书,然后将其导入到 Trust Authority 集群。下表显示了所使用的示例组件和值。

表 1. vSphere Trust Authority 设置示例
组件
Trust Authority 集群的 vCenter Server 192.168.210.22
变量 $vTA Get-TrustAuthorityCluster 'vTA Cluster'
变量 $tpm2Settings Get-TrustAuthorityTpm2AttestationSettings -TrustAuthorityCluster $vTA
变量 $vmhost Get-VMHost
受信任集群中的 ESXi 主机 192.168.110.51
Trust Authority 管理员 [email protected]
包含输出文件的本地目录 C:\vta
PS C:\Users\Administrator> Connect-VIServer -server 192.168.210.22 -User [email protected] -Password 'VMware1!'

Name                           Port  User
----                           ----  ----
192.168.210.22                 443   VSPHERE.LOCAL\TrustedAdmin

PS C:\Users\Administrator> Get-TrustAuthorityCluster

Name                 State                Id
----                 -----                --
vTA Cluster          Enabled              TrustAuthorityCluster-domain-c8

PS C:\Users\Administrator> $vTA = Get-TrustAuthorityCluster 'vTA Cluster'

PS C:\Users\Administrator> $tpm2Settings = Get-TrustAuthorityTpm2AttestationSettings -TrustAuthorityCluster $vTA

PS C:\Users\Administrator> Set-TrustAuthorityTpm2AttestationSettings -Tpm2AttestationSettings $tpm2Settings -RequireEndorsementKey

Confirmation
Configure the Tpm2AttestationSettings 'TrustAuthorityTpm2AttestationSettings-domain-c8' with the following parameters:
 RequireCertificateValidation: False
 RequireEndorsementKey: True
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

Name                                     RequireEndorsementKey          RequireCertificateValidation   Health
----                                     ---------------------          ----------------------------   ------
TrustAuthorityTpm2AttestationSettings... True                           False                          Ok

PS C:\Users\Administrator> Disconnect-VIServer -server * -Confirm:$false
PS C:\Users\Administrator> Connect-VIServer -server 192.168.110.51 -User root -Password 'VMware1!'

Name                           Port  User
----                           ----  ----
192.168.110.51                 443   root

PS C:\Users\Administrator> Get-VMHost

Name                 ConnectionState PowerState NumCpu CpuUsageMhz CpuTotalMhz   MemoryUsageGB   MemoryTotalGB Version
----                 --------------- ---------- ------ ----------- -----------   -------------   ------------- -------
192.168.110.51       Connected       PoweredOn       4          55        9576           1.230           7.999   7.0.0

PS C:\Users\Administrator> $vmhost = Get-VMHost
PS C:\Users\Administrator> Export-Tpm2EndorsementKey -VMHost $vmhost -FilePath C:\vta\tpm2ek.json

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        12/3/2019  10:16 PM           2391 tpm2ek.json

PS C:\Users\Administrator> Disconnect-VIServer -server * -Confirm:$false
PS C:\Users\Administrator> Connect-VIServer -server 192.168.210.22 -User [email protected] -Password 'VMware1!'

Name                           Port  User
----                           ----  ----
192.168.210.22                 443   VSPHERE.LOCAL\TrustedAdmin

PS C:\Users\Administrator> Get-TrustAuthorityCluster

Name                 State                Id
----                 -----                --
vTA Cluster          Enabled              TrustAuthorityCluster-domain-c8

PS C:\Users\Administrator> $vTA = Get-TrustAuthorityCluster ‘vTA Cluster’
PS C:\Users\Administrator> New-TrustAuthorityTpm2EndorsementKey -TrustAuthorityCluster $vTA -FilePath C:\vta\tpm2ek.json

TrustAuthorityClusterId                  Name                                     Health
-----------------------                  ----                                     ------
TrustAuthorityCluster-domain-c8          1a520e42-4db8-1cbb-6dd7-f493fd921ccb     Ok

下一步做什么

继续将受信任主机信息导入到 Trust Authority 集群