将 VMCA 证书替换为自定义证书的第一步是生成 CSR 并添加作为根证书返回到 VMCA 的证书。

关于此任务

您发送以进行签名的证书必须满足以下要求:

  • 密钥大小:2048 位或更大

  • PEM 格式。VMware 支持 PKCS8 和 PKCS1(RSA 密钥)。密钥添加到 VECS 后,会转换为 PKCS8

  • x509 版本 3

  • 如果您当前使用的是自定义证书,对于 root 证书,CA 扩展必须设置为 true,并且证书签名必须在要求列表中。

  • 必须启用 CRL 签名。

  • 增强型密钥使用不得包含客户端身份验证或服务器身份验证。

  • 对证书链的长度没有明确限制。VMCA 使用 OpenSSL 默认设置,即 10 个证书。

  • 不支持包含通配符或多个 DNS 名称的证书。

  • 不能创建 VMCA 的附属 CA。

    请参见 VMware 知识库文章 2112009《在 vSphere 6.0 中创建 Microsoft 证书颁发机构模板以创建 SSL 证书》以获取使用 Microsoft 证书颁发机构的示例。

替换根证书时,VMCA 会验证以下证书属性:

  • 密钥大小:2048 位或更多

  • 密钥用法:证书签名

  • 基本限制:主题类型 CA

过程

  1. 生成 CSR 并将其发送给您的 CA。

    按照 CA 的说明进行操作。

  2. 准备包括签名的 VMCA 证书以及第三方 CA 或企业 CA 的完整 CA 链的证书文件,保存该文件,例如,另存为 rootca1.crt

    可以通过将 PEM 格式的所有 CA 证书复制到单个文件完成此过程。必须以 VMCA 根证书开头,并以根 CA PEM 证书结尾。例如:

    -----BEGIN CERTIFICATE-----
    <Certificate of VMCA>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <Certificate of intermediary CA>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <Certificate of Root CA>
    -----END CERTIFICATE-----
  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. 替换现有 VMCA 根 CA。
    certool --rootca --cert=rootca1.crt --privkey=root1.key

    运行此命令时,会执行以下操作:

    • 将新的自定义根证书添加到文件系统中的证书位置。

    • 将自定义根证书附加到 VECS 中的 TRUSTED_ROOTS 库中(延迟后)。

    • 将自定义根证书附加到 vmdir(延迟后)。

  5. (可选) : 要将更改传播到 vmdir(VMware Directory Service)的所有实例,请将新根证书发布到 vmdir,并提供每个文件的完整文件路径。

    例如:

    dir-cli trustedcert publish --cert rootca1.crt

    每 30 秒进行一次 vmdir 节点之间的复制。无需将根证书显式添加到 VECS,因为 VECS 会每 5 分钟轮询 vmdir 中的新根证书文件。

  6. (可选) : 如有必要,可以强制刷新 VECS。
    vecs-cli force-refresh
  7. 重新启动所有服务。
    service-control --start --all
    

替换根证书

使用 certool 命令和 --rootca 选项将 VMCA 根证书替换为自定义 CA 根证书。

C:\>"C:\Program Files\VMware\vCenter Server\vmcad\certool" --rootca --cert=C:\custom-certs\root.pem -–privkey=C:\custom-certs\root.key

运行此命令时,会执行以下操作:

  • 将新的自定义根证书添加到文件系统中的证书位置。

  • 将自定义根证书附加到 VECS 中的 TRUSTED_ROOTS 库中。

  • 将自定义根证书添加到 vmdir。

下一步做什么

如果公司策略需要,可以从证书存储中移除原始的 VMCA 根证书。如果移除了该根证书,必须刷新这些内部证书: