使用 certool CLI 生成新的 VMCA 签名证书并将其发布到 vmdir。

关于此任务

在多节点部署中,在 Platform Services Controller 上运行根证书生成命令。

过程

  1. 生成新的自签名证书和专用密钥。
    certool --genselfcacert --outprivkey <key_file_path> --outcert <cert_file_path> --config <config_file>
  2. 将现有根证书替换为新证书。
    certool --rootca --cert <cert_file_path> --privkey <key_file_path>

    该命令会生成证书,将其添加到 vmdir,然后将其添加到 VECS。

  3. 停止所有服务,启动处理证书创建、传播和存储的服务。

    服务名称在 Windows 和 vCenter Server Appliance 上有所不同。

    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
    
  4. (可选) : 将新的根证书发布到 vmdir。
    dir-cli trustedcert publish --cert newRoot.crt
    

    运行此命令时,会立即更新 vmdir 的所有实例。另外,传播到所有实例可能需要一些时间。

  5. 重新启动所有服务。
    service-control --start --all
    

生成新的 VMCA 签名根证书

以下示例显示了验证当前根 CA 信息和生成根证书的一组完整步骤。

  1. (可选)列出 VMCA 根证书以确保其位于证书存储中。

    • Platform Services Controller 节点或嵌入式安装中:

      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --getrootca
    • 在管理节点(外部安装)中:

      C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --getrootca --server=<psc-ip-or-fqdn>

    输入类似于以下内容:

    output:
    Certificate:
    Data:
    Version:3 (0x2)
    Serial Number:
    cf:2d:ff:49:88:50:e5:af
        ...
    
  2. (可选)列出 VECS TRUSTED_ROOTS 库,并将证书序列号与步骤 1 中输出的序列号进行比较。

    此命令可在 Platform Services Controller 和管理节点上运行,因为 VECS 会轮询 vmdir。

    "C:\Program Files\VMware\vCenter Server\vmafdd\"vecs-cli entry list --store TRUSTED_ROOTS  --text
    

    在只有一个根证书的最简单情况下,输出类似于以下内容:

    Number of entries in store :    1
    Alias :960d43f31eb95211ba3a2487ac840645a02894bd
    Entry type :Trusted Cert
    Certificate:
    Data:
    Version:3 (0x2)
    Serial Number:
    cf:2d:ff:49:88:50:e5:af
  3. 生成新的 VMCA 根证书。将证书添加到 VECS 和 vmdir(VMware Directory Service)中的 TRUSTED_ROOTS 库。

    C:\>"C:\Program Files\VMware\vCenter Server\vmcad\"certool --selfca --config="C:\Program Files\VMware\vCenter Server\vmcad\certool.cfg"

    在 Windows 中,可以选择 --config,因为该命令使用默认的 certool.cfg 文件。