您公司的安全策略可能要求您在每台主机上将默认的 ESXi SSL 证书替换为第三方 CA 签名的证书。

默认情况下,vSphere 组件使用在安装过程中创建的 VMCA 签名证书和密钥。如果意外删除 VMCA 签名证书,请从其 vCenter Server 系统中移除该主机,然后再重新添加该主机。在添加主机时,vCenter Server 会请求由 VMCA 颁发的新证书,并使用该证书置备主机。

如果公司策略有相关要求,则可以将 VMCA 签名证书替换为由受信任的 CA(商业 CA 或组织 Ca)颁发的证书。

您可以通过各种方式将默认证书替换为受信任的证书。

注: 您也可以使用 vSphere Web Services SDK 中的 vim.CertificateManagervim.host.CertificateManager 受管对象。请参见 vSphere Web Services SDK 文档。

替换证书后,您必须在管理主机的 vCenter Server 系统上更新 VECS 中的 TRUSTED_ROOTS 存储,以确保 vCenter ServerESXi 主机建立信任关系。

有关对 ESXi 主机使用 CA 签名证书的详细说明,请参见 ESXi 证书模式切换工作流

注: 如果要替换属于 vSAN 集群的 ESXi 主机上的 SSL 证书,请按照 VMware 知识库文章 ( https://kb.vmware.com/s/article/56441) 中的步骤进行操作。

ESXi 证书签名请求的要求

如果要使用企业或第三方 CA 签名的证书或辅助 CA 签名的证书,必须向 CA 发送证书签名请求 (CSR)。

使用具有以下特性的 CSR:

  • 密钥大小:2048 位(最小值)到 16384 位(最大值)(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 地址)。
注: vSphere 的 FIPS 证书仅验证 2048 和 3072 的 RSA 密钥大小。请参见 使用 FIPS 时的注意事项
vSphere 不支持以下证书。
  • 使用通配符的证书。
  • 不支持算法 md2WithRSAEncryption、md5WithRSAEncryption、RSASSA-PSS、dsaWithSHA1、ecdsa_with_SHA1 和 sha1WithRSAEncryption。

有关生成 CSR 的信息,请参见相应的 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/2113926

ESXi Shell 替换默认证书和密钥

可以从 ESXi Shell 替换默认的 VMCA 签名的 ESXi 证书。

前提条件

  • 如果要使用第三方 CA 签名证书,请生成证书请求、将其发送至证书颁发机构,并将证书存储在每个 ESXi 主机上。
  • 如果需要,从 vSphere Client 启用 ESXi Shell 或启用 SSH 流量。
  • 所有的文件传输和其他通信均通过安全 HTTPS 会话进行。用于验证会话的用户必须在主机上拥有主机.配置.高级配置特权。

过程

  1. 以管理员权限用户的身份登录 ESXi Shell,可直接从 DCUI 登录,也可从 SSH 客户端登录。
  2. /etc/vmware/ssl 目录中,使用以下命令重命名现有证书。
    mv rui.crt orig.rui.crt
    mv rui.key orig.rui.key
  3. 将要使用的证书复制到 /etc/vmware/ssl
  4. 将新证书和密钥重命名为 rui.crtrui.key
  5. 安装新证书之后重新启动主机。
    或者也可以将主机置于维护模式,安装新证书,使用直接控制台用户界面 (DCUI) 重新启动管理代理,并将主机设置为退出维护模式。

下一步做什么

更新 vCenter Server TRUSTED_ROOTS 存储。请参见更新 vCenter Server TRUSTED_ROOTS 存储(自定义证书)

通过 HTTPS PUT 替换默认证书

可以使用第三方应用程序上载证书和密钥。支持 HTTPS PUT 操作的应用程序可以与 ESXi 包含的 HTTPS 接口配合使用。

前提条件

  • 如果要使用第三方 CA 签名证书,请生成证书请求、将其发送至证书颁发机构,并将证书存储在每个 ESXi 主机上。
  • 如果需要,从 vSphere Client 启用 ESXi Shell 或启用 SSH 流量。
  • 所有的文件传输和其他通信均通过安全 HTTPS 会话进行。用于验证会话的用户必须在主机上拥有主机.配置.高级配置特权。

过程

  1. 备份现有证书。
  2. 设置基本访问身份验证,其中提供 Base64 编码的用户名和密码,并用一个冒号 (:) 分隔。有关详细信息,请参见https://en.wikipedia.org/wiki/Basic_access_authentication
  3. 在上载应用程序中,如下处理每个文件:
    1. 打开文件。
    2. 将文件发布到以下位置之一。
      选项 描述
      证书 https://hostname/host/ssl_cert
      密钥 https://hostname/host/ssl_key
    /host/ssl_certhost/ssl_key 位置链接到 /etc/vmware/ssl 中的证书文件。
  4. 重新启动主机。
    或者也可以将主机置于维护模式,安装新证书,使用直接控制台用户界面 (DCUI) 重新启动管理代理,并将主机设置为退出维护模式。

下一步做什么

更新 vCenter Server TRUSTED_ROOTS 存储。请参见更新 vCenter Server TRUSTED_ROOTS 存储(自定义证书)

更新 vCenter Server TRUSTED_ROOTS 存储(自定义证书)

如果将 ESXi 主机设置为使用自定义证书,则必须在管理主机的 vCenter Server 系统上更新 TRUSTED_ROOTS 存储。

前提条件

将每台主机上的证书替换为自定义证书。

注: 如果 vCenter Server 系统所使用的自定义证书的 CA 颁发方与 ESXi 主机上安装证书的相同,则不需要此步骤。

过程

  1. 要使用 vSphere Client 更新 vCenter Server TRUSTED_ROOTS 存储,请参见使用 vSphere Client 向证书存储添加可信根证书。
  2. 要使用命令行界面更新 vCenter Server TRUSTED_ROOTS 存储,请登录到管理 ESXi 主机的 vCenter Server 系统的 vCenter Server Shell。
  3. 要将新证书添加到 TRUSTED_ROOTS 存储,运行 dir-cli,例如:
    /usr/lib/vmware-vmafd/bin/dir-cli trustedcert publish --cert path_to_RootCA
  4. 出现提示时,提供 Single Sign-On 管理员凭据。
  5. 如果您的自定义证书由中间 CA 颁发,您还必须将中间 CA 添加到 vCenter Server 上的 TRUSTED_ROOTS 存储,例如:
    /usr/lib/vmware-vmafd/bin/dir-cli trustedcert publish --cert path_to_intermediateCA

下一步做什么

将证书模式设置为“自定义”。如果证书模式是默认值 VMCA,则执行证书刷新时,自定义证书将替换为 VMCA 签名的证书。请参见更改 ESXi 证书模式