在替换计算机 SSL 证书后,可以替换解决方案用户证书。

许多 VMware 客户未替换解决方案用户证书。他们仅将计算机 SSL 证书替换为自定义证书。这种混合方法符合其安全团队的要求。
  • 证书位于代理后面或是自定义证书。
  • 未使用中间 CA。

替换每个管理节点和每个 Platform Services Controller 节点上的计算机解决方案用户证书。只能替换每个管理节点上的其他解决方案用户证书。在具有外部 --server 的管理节点上运行命令时,请使用 Platform Services Controller 参数指向 Platform Services Controller

注: 在大型部署中列出解决方案用户证书时, dir-cli list 的输出包括所有节点的所有解决方案用户。运行 vmafd-cli get-machine-id --server-name localhost 以查找每个主机的本地计算机 ID。每个解决方案用户名称均包括计算机 ID。

前提条件

每个解决方案用户证书必须具有不同的 Subject。例如,考虑包含解决方案用户名(如 vpxd)或其他唯一标识符。

注: vpxd 证书存储仅存在于 vCenter Server Appliance(而不是 Platform Services Controller)中。

过程

  1. 复制一份 certool.cfg,移除名称、IP 地址、DNS 名称和电子邮件字段,并重命名文件,例如,重命名为 sol_usr.cfg
    您可以通过命令行在生成过程中命名证书。解决方案用户不需要其他信息。如果保留默认信息,生成的证书可能会造成混淆。
  2. 传递刚自定义的配置文件为每个解决方案用户生成公用/专用密钥文件对和证书。
    例如:
    certool --genkey --privkey=vpxd.priv --pubkey=vpxd.pub
    certool --gencert --privkey=vpxd.priv --cert vpxd.crt --Name=VPXD_1 --config sol_usr.cfg
  3. 查找每个解决方案用户的名称。
    dir-cli service list 
    
    可以使用替换证书时返回的唯一 ID。输入和输出可能显示如下。
    C:\Program Files\VMware\vCenter Server\vmafdd>dir-cli service list
    Enter password for [email protected]:
    1. machine-1d364500-4b45-11e4-96c2-020011c98db3
    2. vpxd-1d364500-4b45-11e4-96c2-020011c98db3
    3. vpxd-extension-1d364500-4b45-11e4-96c2-020011c98db3
    4. vsphere-webclient-1d364500-4b45-11e4-96c2-020011c98db3
    在多节点部署中列出解决方案用户证书时, dir-cli 列表输出将包含所有节点的所有解决方案用户。运行 vmafd-cli get-machine-id --server-name localhost 以查找每个主机的本地计算机 ID。每个解决方案用户名称均包括计算机 ID。
  4. 停止所有服务,启动处理证书创建、传播和存储的服务。
    服务名称在 Windows 和 vCenter Server Appliance 上有所不同。
    注: 如果您的环境使用外部 Platform Services Controller,则不必停止和启动 vCenter Server 节点上的 VMware Directory Service (vmdird) 和 VMware Certificate Authority (vmcad)。这些服务在 Platform Services Controller 上运行。
    Windows
    service-control --stop --all
    service-control --start VMWareAfdService
    service-control --start VMWareDirectoryService
    service-control --start VMWareCertificateService
    
    vCenter Server Appliance
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. 依次替换 vmdir 和 VECS 中的现有证书。
    对于解决方案用户,必须以该顺序添加证书。例如:
    dir-cli service update --name <vpxd-xxxx-xxx-7c7b769cd9f4> --cert ./vpxd.crt
    vecs-cli entry delete --store vpxd --alias vpxd
    vecs-cli entry create --store vpxd --alias vpxd --cert vpxd.crt --key vpxd.priv
    
    注: 如果不替换 vmdir 中的证书,则解决方案用户无法登录到 vCenter Single Sign-On。
  6. 重新启动所有服务。
    service-control --start --all
    

示例: 替换解决方案用户证书(中间 CA)

  1. 为每个解决方案用户生成公用/专用密钥对。其中包括每个 Platform Services Controller 和每个管理节点上的计算机解决方案用户的密钥对和每个管理节点上的每个其他解决方案用户(vpxd、vpxd-extension、vsphere-webclient)的密钥对。
    1. 为嵌入式部署的计算机解决方案用户或 Platform Services Controller 的计算机解决方案用户生成密钥对。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
      
    2. (可选)对于使用外部 Platform Services Controller 的部署,请为每个管理节点上的计算机解决方案用户生成密钥对。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
    3. 为每个管理节点上的 vpxd 解决方案用户生成密钥对。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
    4. 为每个管理节点上的 vpxd-extension 解决方案用户生成密钥对。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
    5. 为每个管理节点上的 vsphere-webclient 解决方案用户生成密钥对。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
  2. 为每个 Platform Services Controller 和每个管理节点上的计算机解决方案用户以及每个管理节点上的每个其他解决方案用户(vpxd、vpxd-extension、vsphere-webclient)生成由新的 VMCA root 证书签名的解决方案用户证书。
    注: --Name 参数必须唯一。包括解决方案用户存储的名称,可便于查看证书与解决方案用户之间的映射关系。在任何一种情况下,该示例都包括此名称,例如 vpxdvpxd-extension
    1. Platform Services Controller 节点上运行以下命令可为该节点上的计算机解决方案用户生成解决方案用户证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine 
      
    2. 为每个管理节点上的计算机解决方案用户生成证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine --server=<psc-ip-or-fqdn>
      
    3. 为每个管理节点上的 vpxd 解决方案用户生成证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd --server=<psc-ip-or-fqdn>
      
    4. 为每个管理节点上的 vpxd-extensions 解决方案用户生成证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension --server=<psc-ip-or-fqdn>
      
    5. 通过运行以下命令为每个管理节点上的 vsphere-webclient 解决方案用户生成证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient --server=<psc-ip-or-fqdn>
  3. 将 VECS 中的解决方案用户证书替换为新的解决方案用户证书。
    注: --store--alias 参数必须与服务的默认名称完全匹配。
    1. Platform Services Controller 节点上,请运行以下命令以替换计算机解决方案用户证书:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store machine --alias machine
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store machine --alias machine --cert new-machine.crt --key machine-key.priv
      
    2. 替换每个管理节点上的计算机解决方案用户证书:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store machine --alias machine
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store machine --alias machine --cert new-machine-vc.crt --key machine-vc-key.priv
      
    3. 替换每个管理节点上的 vpxd 解决方案用户证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store vpxd --alias vpxd
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store vpxd --alias vpxd --cert new-vpxd.crt --key vpxd-key.priv
      
    4. 替换每个管理节点上的 vpxd-extension 解决方案用户证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store vpxd-extension --alias vpxd-extension
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store vpxd-extension --alias vpxd-extension --cert new-vpxd-extension.crt --key vpxd-extension-key.priv
      
    5. 替换每个管理节点上的 vsphere-webclient 解决方案用户证书。
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry delete --store vsphere-webclient --alias vsphere-webclient
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry create --store vsphere-webclient --alias vsphere-webclient --cert new-vsphere-webclient.crt --key vsphere-webclient-key.priv
      
  4. 使用新的解决方案用户证书更新 VMware Directory Service (vmdir)。系统将提示您输入 vCenter Single Sign-On 管理员密码。
    1. 运行 dir-cli service list 可获取每个解决方案用户的唯一服务 ID 后缀。可以在 Platform Services ControllervCenter Server 系统上运行此命令。
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"dir-cli>dir-cli service list
      output:
      1. machine-29a45d00-60a7-11e4-96ff-00505689639a
      2. machine-6fd7f140-60a9-11e4-9e28-005056895a69
      3. vpxd-6fd7f140-60a9-11e4-9e28-005056895a69
      4. vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69
      5. vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69
      注: 在大型部署中列出解决方案用户证书时, dir-cli list 的输出包括所有节点的所有解决方案用户。运行 vmafd-cli get-machine-id --server-name localhost 以查找每个主机的本地计算机 ID。每个解决方案用户名称均包括计算机 ID。
    2. Platform Services Controller 上替换 vmdir 中的计算机证书。例如,如果 machine-29a45d00-60a7-11e4-96ff-00505689639a 为 Platform Services Controller 中的计算机解决方案用户,请运行此命令:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"dir-cli service update --name machine-29a45d00-60a7-11e4-96ff-00505689639a --cert new-machine-1.crt
    3. 替换每个管理节点上的 vmdir 中的计算机证书。例如,如果 machine-6fd7f140-60a9-11e4-9e28-005056895a69 为 vCenter Server 中的计算机解决方案用户,请运行此命令:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine-2.crt
    4. 替换每个管理节点上的 vmdir 中的 vpxd 解决方案用户证书。例如,如果 vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 为 vpxd 解决方案用户 ID,请运行此命令:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
    5. 替换每个管理节点上的 vmdir 中的 vpxd-extension 解决方案用户证书。例如,如果 vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 为 vpxd-extension 解决方案用户 ID,请运行此命令:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"dir-cli service update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
      
    6. 替换每个管理节点上的 vsphere-webclient 解决方案用户证书。例如,如果 vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 为 vsphere-webclient 解决方案用户 ID,请运行此命令:
      C:\>"C:\Program Files\VMware\vCenter Server\vmafdd\"dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt