使用 vSphere Web Services SDK 替换 ESXi 主机上的证书时,之前的证书和密钥将附加到 .bak 文件。通过将 .bak 文件中的信息移动到当前证书和密钥文件中,可以还原之前的证书。

主机证书和密钥位于 /etc/vmware/ssl/rui.crt/etc/vmware/ssl/rui.key 中。使用 vSphere Web Services SDK vim.CertificateManager 受管对象替换主机证书和密钥时,之前的密钥和证书将附加到 /etc/vmware/ssl/rui.bak 文件。

注: 如果通过 HTTP PUT、 vifsESXi Shell 替换证书,则现有证书不会附加到 .bak 文件。

过程

  1. ESXi 主机上,找到 /etc/vmware/ssl/rui.bak 文件。
    该文件具有以下格式:
    #
    # Host private key and certificate backup from 2014-06-20 08:02:49.961
    #
    
    -----BEGIN PRIVATE KEY-----
    previous key
    -----END PRIVATE KEY-----
    
    -----BEGIN CERTIFICATE-----
    previous cert
    -----END CERTIFICATE-----
    
  2. 将开头为 -----BEGIN PRIVATE KEY----- 且结尾为 -----END PRIVATE KEY----- 的文本复制到 /etc/vmware/ssl/rui.key 文件中。
    包括 -----BEGIN PRIVATE KEY----------END PRIVATE KEY-----
  3. -----BEGIN CERTIFICATE----------END CERTIFICATE----- 之间的文本复制到 /etc/vmware/ssl/rui.crt 文件中。
    包括 -----BEGIN CERTIFICATE----------END CERTIFICATE-----
  4. 重新启动主机或将 ssl_reset 事件发送至使用密钥的所有服务。
    for s in /etc/init.d/*; do $s | grep ssl_reset > /dev/null; if [ $?== 0 ]; then $s ssl_reset; fi; done