可以使用企业或第三方 CA 的自定义证书。第一步是向证书颁发机构请求证书并将根证书导入 VMware 端点证书存储 (VECS)。

前提条件

证书必须满足以下要求:

  • 密钥大小:2048 位或更大(PEM 编码)
  • PEM 格式。VMware 支持 PKCS8 和 PKCS1(RSA 密钥)。密钥添加到 VECS 后,会转换为 PKCS8。
  • x509 版本 3
  • 对于根证书,CA 扩展必须设置为 true,并且 cert 签名必须在要求列表中。
  • SubjectAltName 必须包含 DNS Name=<machine_FQDN>。
  • CRT 格式
  • 包含以下密钥用法:数字签名、密钥加密。
  • 比当前时间早一天的开始时间。
  • CN(和 SubjectAltName)设置为 vCenter Server 清单中的 ESXi 主机的主机名(或 IP 地址)。

过程

  1. 向企业或第三方证书提供商发送以下证书的证书签名请求 (CSR)。
    • 每个计算机具有一个计算机 SSL 证书。对于计算机 SSL 证书,SubjectAltName 字段必须包含完全限定域名 (DNS NAME=machine_FQDN)
    • (可选)每个嵌入式系统或管理节点具有四个解决方案用户证书。解决方案用户证书不应包括 IP 地址、主机名或电子邮件地址。每个证书必须具有不同的证书主体。
    • (可选)用于外部 Platform Services Controller 实例的计算机解决方案用户证书。该证书不同于 Platform Services Controller 的计算机 SSL 证书。

    通常,结果为信任链的 PEM 文件以及每个 Platform Services Controller 或管理节点的签名 SSL 证书。

  2. 列出 TRUSTED_ROOTS 存储和计算机 SSL 存储。
    vecs-cli store list 
    
    1. 确保当前根证书和所有计算机 SSL 证书均为 VMCA 签名证书。
    2. 请记下“序列号”、“颁发者”和“主体 CN”字段。
    3. (可选) 使用 Web 浏览器,打开与将替换证书的节点的 HTTPS 连接,检查证书信息,并确保该信息与计算机 SSL 证书相匹配。
  3. 停止所有服务,启动处理证书创建、传播和存储的服务。
    服务名称在 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
    
  4. 发布自定义 root 证书。
    dir-cli trustedcert publish --cert <my_custom_root>
    如果在命令行上不指定用户名和密码,系统会提示您。
  5. 重新启动所有服务。
    service-control --start --all
    

下一步做什么

如果公司策略需要,可以从证书存储中移除原始的 VMCA 根证书。如果执行此操作,则必须刷新 vCenter Single Sign-On 证书。请参见刷新 Security Token Service 证书