VMware Cloud Director 使用 SSL 握手来保护客户端和服务器之间的通信。

VMware Cloud Director 10.4 开始,控制台代理使用与 REST API 相同的 IP 地址和端口。控制台代理和 REST API 使用单个证书。由于使用统一的接入点,因此不再需要自定义 VMware Cloud Director 公用控制台代理地址。
注: VMware Cloud Director 10.4.1 及更高版本不支持控制台代理功能的旧版实现。

签名证书由授权的证书颁发机构 (CA) 签名,只要本地操作系统信任存储区具有 CA 的根证书和中间证书的副本,浏览器就会信任这些证书。一些 CA 要求提交证书要求,其他一些 CA 要求提交证书签名请求 (CSR)。在这两种情况下,您都将创建自签名证书,并基于该证书生成 CSR。CA 使用其私钥对证书进行签名,然后您可以使用其公钥副本对其进行解密,并建立信任关系。

续订已过期的 SSL 证书时,无需向 VMware Cloud Director 提供有关已过期证书的任何数据。这意味着,将所需的 SSL 证书导入到 VMware Cloud Director 设备后,无需对其进行备份。

可以将 PEM 文件直接导入到 VMware Cloud Director 设备。如果证书文件采用其他格式,则可以先使用 OpenSSL 将其转换为 PEM,然后再使用单元管理工具将其导入到 VMware Cloud Director

可以使用单元管理工具将 .key 和 .pem 证书文件导入到设备。

VMware Cloud Director 设备中的证书管理

您可以使用 Service Provider Admin Portal管理单元 HTTP 证书。单元管理工具的 certificates 命令已移除。由于这些原因,10.6 及更高版本的证书管理与更低版本明显不同。

默认情况下,部署 VMware Cloud Director 设备实例时,VMware Cloud Director 会生成自签名证书,并使用这些证书来配置 VMware Cloud Director 单元以进行安全通信。部署设备后,可以重新配置该单元以使用签名证书。

从版本 10.5.0 及更低版本升级到版本 10.5.1 及更高版本时,VMware Cloud Director 会将每个单元的现有 HTTP 证书从磁盘迁移到 System 组织的证书库。如果磁盘上 HTTP 证书之前在服务器组中的每个单元之间共享(例如,与通配符证书一样),则 VMware Cloud Director 只会向证书库添加一个副本,并且每个单元将成为库项目的使用者。

VMware Cloud Director 10.5.1 开始,除了 VMware Cloud Director 用于单元的 HTTPS 通信的证书外,VMware Cloud Director 还使用第二个证书来保护 Java Management Extensions (JMX) 通信。JMX 用于简化单元间通信。使用 JMX,每个单元都可以在服务器组中的其他单元上调用远程操作。VMware Cloud Director 10.6.x 单元首次启动时,VMware Cloud Director 会自动生成 JMX 证书,并将其添加到 System 组织的证书库受信任的证书

替换或续订 VMware Cloud Director 单元的证书

如果证书过期,或者您要将自签名证书替换为完好签名证书,您可能需要替换或续订 VMware Cloud Director 单元的证书。

必备条件

  • 部署后,VMware Cloud Director 设备会生成密钥大小为 2048 位的自签名证书。在选择适当的密钥大小之前,请评估安装的安全要求。根据 NIST 特殊出版物 800-131A,VMware Cloud Director 不支持小于 1024 位的密钥大小。

    如果需要生成新证书让证书颁发机构 (CA) 签名,请参见为 VMware Cloud Director HTTPS 端点生成自签名证书

  • 确认要创建的证书链中没有任何证书使用 SHA1。VMware Cloud Director 不接受签名算法使用 SHA1 的证书,例如,sha1WithRSAEncryption
  • 在将 HTTP 资料上载到证书库之前,您必须准备证书链以供服务器分发证书。

    如果您有中间证书,例如,intermediate-certificate-file-{1-n}.cer,请将其附加到 HTTPS 证书中。

    在极少数情况下,您还可以附加根证书 root-CA-certificate.cer。这种情况并不常见,如果您的 CA 是使用最现代化的浏览器分发证书的公认证书颁发机构之一,这通常不适用。请咨询您的 CA 了解详细信息,并确定是否必须附加根证书。

    cat intermediate-certificate-file-1.cer intermediate-certificate-file-2.cer >> your-http-certificate.pem

    其中,intermediate-certificate-file-1.cerintermediate-certificate-file-2.cer 是中间证书的名称。

  • 确认证书采用 PEM 编码的 X.509 格式,并且其关联的私钥采用 PEM 编码的 PKCS #8 格式。只能将这些格式的证书上载到证书库
过程
  1. 将证书及其关联的私钥导入到 System 组织的证书库中。请参见使用 VMware Cloud Director 服务提供商管理门户将证书导入到证书库
  2. 更改单元的证书
  3. 为集群中的每个设备重复执行步骤 1 和 2。

替换或续订 VMware Cloud Director 设备管理证书

  1. root 身份直接或通过 SSH 登录到 VMware Cloud Director 设备的操作系统。
  2. 要停止 VMware Cloud Director 服务,请运行以下命令。
    /opt/vmware/vcloud-director/bin/cell-management-tool -u administrator cell --shutdown
  3. 运行以下命令,为嵌入式 PostgreSQL 数据库和 VMware Cloud Director 设备管理 UI 生成自签名证书。
    /opt/vmware/appliance/bin/generate-appliance-certificates.sh
    注:VMware Cloud Director 10.5.1.1 开始, generate-certificates.sh 脚本已重命名为 generate-appliance-certificates.sh,并且该脚本只会续订 VMware Cloud Director 设备证书。 VMware Cloud Director 证书续订和替换不再由该脚本完成。

    此命令会自动为嵌入式 PostgreSQL 数据库和设备管理 UI 使用新生成的证书。PostgreSQL 和 Nginx 服务器将重新启动。

  4. (可选)如果要让 CA 对新生成的证书进行签名,请获取 CA 签名证书,复制这些证书,然后重新启动服务。
    1. vcd_ova.csr 文件中创建证书签名请求。
      openssl req -new -key /opt/vmware/appliance/etc/ssl/vcd_ova.key -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:vcd2.example.com,DNS:vcd2,IP:10.100.101.10\n")) -out vcd_ova.csr
    2. 将证书签名请求发送到 CA。如果必须指定 Web 服务器类型,请使用 Jakarta Tomcat。
    3. 获取 CA 签名证书时,请复制 CA 签名证书以覆盖原始证书。
      cp ca-signed-vcd_ova.pem /opt/vmware/appliance/etc/ssl/vcd_ova.crt
    4. 重新启动 nginxpostgres 服务。
      systemctl restart nginx.service systemctl restart vpostgres.service
  5. 重新启动 VMware Cloud Director 服务。
    service vmware-vcd start