创建和导入证书颁发机构 (CA) 签名的证书为 SSL 通信提供最高级别的信任,并有助于保护云中的连接。

每个 VMware Cloud Director 服务器都必须支持两个不同的 SSL 端点,一个用于 HTTPS 通信,一个用于控制台代理通信。

VMware Cloud Director 设备中,这两个端点共享同一个 IP 地址或主机名,但使用两个不同的端口 - 443 用于 HTTPS 通信,8443 用于控制台代理通信。您可以对这两个端点使用相同的证书,例如,使用通配符证书。

两个端点的证书都必须包含 X.500 标识名和 X.509 主体备用名称扩展。

如果您拥有自己的私钥和 CA 签名证书文件,请按照将私钥和 CA 签名的 SSL 证书导入到 VMware Cloud Director 设备中所述的过程操作。

重要说明: 部署后, VMware Cloud Director 设备会生成密钥大小为 2048 位的自签名证书。必须先评估安装的安全要求,然后再选择适当的密钥大小。根据 NIST 特殊出版物 800-131A,不再支持小于 1024 位的密钥大小。

在此过程中使用的私钥密码是 root 用户密码,表示为 root_password 形式。

过程

  1. root 身份直接或通过 SSH 客户端登录到 VMware Cloud Director 设备控制台。
  2. 根据您的环境需求,选择以下选项之一。
    部署 VMware Cloud Director 设备时, VMware Cloud Director 会自动为 HTTPS 服务和控制台代理服务生成密钥大小为 2048 位的自签名证书。
    • 如果您希望证书颁发机构对部署时生成的证书进行签名,请跳至步骤 5
    • 如果要使用自定义选项(如更大的密钥大小)生成新证书,请继续执行步骤 3
  3. 运行以下命令以备份现有的证书文件。
    cp /opt/vmware/vcloud-director/etc/user.http.pem /opt/vmware/vcloud-director/etc/user.http.pem.original
    cp /opt/vmware/vcloud-director/etc/user.http.key /opt/vmware/vcloud-director/etc/user.http.key.original
    cp /opt/vmware/vcloud-director/etc/user.consoleproxy.pem /opt/vmware/vcloud-director/etc/user.consoleproxy.pem.original
    cp /opt/vmware/vcloud-director/etc/user.consoleproxy.key /opt/vmware/vcloud-director/etc/user.consoleproxy.key.original
  4. 运行以下命令,为 HTTPS 服务和控制台代理服务创建公钥和私钥密钥对。
    /opt/vmware/vcloud-director/bin/cell-management-tool generate-certs --cert /opt/vmware/vcloud-director/etc/user.http.pem --key /opt/vmware/vcloud-director/etc/user.http.key --key-password root-password
    /opt/vmware/vcloud-director/bin/cell-management-tool generate-certs --cert /opt/vmware/vcloud-director/etc/user.consoleproxy.pem --key /opt/vmware/vcloud-director/etc/user.consoleproxy.key --key-password root-password

    命令使用默认值创建或覆盖证书文件,然后使用指定的密码创建或覆盖私钥文件。根据环境的 DNS 配置,颁发者公用名称 (CN) 设置为每个服务的 IP 地址或 FQDN。证书使用默认的 2048 位密钥长度,并在创建 1 年后过期。

    重要说明: 由于 VMware Cloud Director 设备中的配置限制,您必须将 /opt/vmware/vcloud-director/etc/user.http.pem/opt/vmware/vcloud-director/etc/user.http.key 位置用于 HTTPS 证书文件并将 /opt/vmware/vcloud-director/etc/user.consoleproxy.pem/opt/vmware/vcloud-director/etc/user.consoleproxy.key 位置用于控制台代理证书文件。
    注: 您可以使用设备的 root 密码作为密钥密码。
  5. 为 HTTPS 服务和控制台代理服务创建证书签名请求 (CSR)。
    重要说明: VMware Cloud Director 设备对 HTTPS 服务和控制台代理服务共享相同的 IP 地址和主机名。因此,CSR 创建命令必须为主体备用名称 (SAN) 扩展参数使用相同的 DNS 和 IP。
    1. http.csr 文件中创建证书签名请求。
      openssl req -new -key /opt/vmware/vcloud-director/etc/user.http.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 http.csr
    2. consoleproxy.csr 文件中创建证书签名请求。
      openssl req -new -key /opt/vmware/vcloud-director/etc/user.consoleproxy.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 consoleproxy.csr
  6. 将证书签名请求发送给证书颁发机构。
    如果您的证书颁发机构要求您指定 Web 服务器类型,则使用 Jakarta Tomcat。
    您将获取 CA 签名证书。
  7. 将 CA 签名证书、CA 根证书和任何中间证书复制到 VMware Cloud Director 设备,然后运行命令以覆盖现有证书。
    1. 运行以下命令以使用 CA 签名的版本覆盖设备上的现有 user.http.pem 证书。
      cp ca-signed-http.pem /opt/vmware/vcloud-director/etc/user.http.pem
    2. 运行以下命令以使用 CA 签名的版本覆盖设备上的现有 user.consoleproxy.pem
      cp ca-signed-consoleproxy.pem /opt/vmware/vcloud-director/etc/user.consoleproxy.pem
  8. 运行命令,将根 CA 签名证书和任何中间证书附加到 HTTP 证书和控制台代理证书。
    cat intermediate-certificate-file-1.cer intermediate-certificate-file-2.cer root-CA-certificate.cer >> /opt/vmware/vcloud-director/etc/user.http.pem
    cat intermediate-certificate-file-1.cer intermediate-certificate-file-2.cer root-CA-certificate.cer >> /opt/vmware/vcloud-director/etc/user.consoleproxy.pem
  9. 运行命令以将证书导入到 VMware Cloud Director 实例中。
    /opt/vmware/vcloud-director/bin/cell-management-tool certificates -j --cert /opt/vmware/vcloud-director/etc/user.http.pem --key /opt/vmware/vcloud-director/etc/user.http.key --key-password root_password
    /opt/vmware/vcloud-director/bin/cell-management-tool certificates -p --cert /opt/vmware/vcloud-director/etc/user.consoleproxy.pem --key /opt/vmware/vcloud-director/etc/user.consoleproxy.key --key-password root_password
  10. 要使新签名证书生效,请重新启动 VMware Cloud Director 设备上的 vmware-vcd 服务。
    1. 运行 命令以停止 服务。
      /opt/vmware/vcloud-director/bin/cell-management-tool cell -i $(service vmware-vcd pid cell) -s
    2. 运行 命令以启动 服务。
      systemctl start vmware-vcd

下一步做什么