当您收到 CA 的签名证书并使其成为 VMCA 根证书后,您可以替换所有计算机 SSL 证书。

这些步骤实际上与替换为使用 VMCA 作为证书颁发机构的证书的步骤相同。但是,在这种情况下,VMCA 会对整个链中的所有证书进行签名。

每台计算机都必须拥有可用于与其他服务进行安全通信的计算机 SSL 证书。当多个 vCenter Server 实例以增强型链接模式配置进行连接时,必须在每个节点上运行计算机 SSL 证书生成命令。

前提条件

对于每个计算机 SSL 证书,SubjectAltName 必须包含 DNS Name=<Machine FQDN>

过程

  1. 为需要新证书的每台计算机复制一份 certool.cfg
    certool.cfg 文件位于 /usr/lib/vmware-vmca/share/config/ 目录中。
  2. 编辑每台计算机的自定义配置文件以包括该计算机的 FQDN。
    对计算机的 IP 地址运行 NSLookup,以查看名称的 DNS 列表,并在文件的“主机名”字段中使用该名称。
  3. 传递刚自定义的配置文件为每个计算机生成公用/专用密钥文件对。
    例如:
    certool --genkey --privkey=machine1.priv --pubkey=machine1.pub
    certool --gencert --privkey=machine1.priv --cert machine42.crt --Name=Machine42_Cert --config machine1.cfg
  4. 停止所有服务,启动处理证书创建、传播和存储的服务。
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. 将新证书添加到 VECS。
    所有计算机都需要本地证书存储中的新证书来通过 SSL 进行通信。首先删除现有条目,然后添加新条目。
    vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT  
    vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert machine1.cert
    --key machine1.priv
  6. 重新启动所有服务。
    service-control --start --all
    

示例: 替换计算机 SSL 证书(VMCA 为中间 CA)

  1. 为 SSL 证书创建配置文件,并在当前目录中将其保存为 ssl-config.cfg
    Country = US
    Name = vmca-<FQDN-example>
    Organization = VMware
    OrgUnit = VMware Engineering
    State = California 
    Locality = Palo Alto
    Hostname = <FQDN>
  2. 为计算机 SSL 证书生成密钥对。在包含以增强型链接模式配置连接的多个 vCenter Server 实例的部署中,在每个 vCenter Server 节点上运行以下命令。
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
    

    将在当前目录中创建 ssl-key.privssl-key.pub 文件。

  3. 生成新的计算机 SSL 证书。此证书为 VMCA 签名证书。如果将 VMCA 根证书替换为自定义证书,则 VMCA 会对整个链中的所有证书进行签名。
    /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg

    将在当前目录中创建 new-vmca-ssl.crt 文件。

  4. (可选)列出 VECS 的内容。
    /usr/lib/vmware-vmafd/bin/vecs-cli store list
    • vCenter Server 中的输出示例:
      output (on vCenter):
      MACHINE_SSL_CERT
      TRUSTED_ROOTS
      TRUSTED_ROOT_CRLS
      machine
      vsphere-webclient
      vpxd
      vpxd-extension
      hvc
      data-encipherment
      APPLMGMT_PASSWORD
      SMS
      wcp
      KMS_ENCRYPTION
  5. 将 VECS 中的计算机 SSL 证书替换为新的计算机 SSL 证书。--store--alias 值必须与默认名称完全匹配。
    • 在每个 vCenter Server 上,运行以下命令以更新 MACHINE_SSL_CERT 存储中的计算机 SSL 证书。由于每个计算机具有不同的 FQDN,因此必须单独更新每个计算机的证书。
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv