2 年后在 VMware vCenter Server 4.x/5.0.x 中重新生成已过期的 SSL 证书
search cancel

2 年后在 VMware vCenter Server 4.x/5.0.x 中重新生成已过期的 SSL 证书

book

Article ID: 310998

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Regenerating expired SSL certificates after 2 years in VMware vCenter Server 4.x / 5.0.x (1009092) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • 尝试使用 vCenter Server 的 EMC 控制中心应用程序执行发现时,出现 Error 39
  • 发现过程未完成。


Environment

VMware ESX 4.0.x
VMware VirtualCenter 2.5.x
VMware vCenter Server 5.0.x
VMware vCenter Server 4.0.x
VMware vCenter Server 4.1.x

Resolution

如果要升级到 vCenter Server 5.1 或 5.5,请参见 Implementing CA signed SSL certificates with vSphere 5.x (2034833)。如果不希望在您的环境中实施 CA 签名的 SSL 证书,可以通过在升级之前执行以下操作以在升级期间重新生成 VMware 默认 SSL 证书:

  1. 登录到 vCenter Server 系统
  2. 卸载当前版本的 vCenter Server
  3. C:\ProgramData\VMware\VMware VirtualCenter\SSL 目录重命名为 SSL.old
  4. 执行升级过程。将重新生成新的默认证书。


在这种情况下,SSL 证书已过期,并且发现过程会失败。有两种方法可用于升级 SSL 证书。

注意:SSL 证书有两或十年的使用期限,具体取决于证书版本。

  • 对于 VirtualCenter 2.5,使用期限是两年
  • 对于 vCenter Server 4.x 及更高版本,使用期限是十年


方法 1

使用此方法,可能会使用 OpenSSL 重新生成证书。现有的 rui.key 文件可用于完成此操作。如果安装的是 vCenter Server 4.0,这是唯一可用的方法。

OpenSSL 是用于生成 SSL 证书的免费实用程序。可从 http://www.openssl.org/ 下载该实用程序。提供适用于 Windows 或 Linux 的版本。

有关下载最新版本 OpenSSL(高于版本 0.9.8)的特殊说明,请参见 Issues viewing Storage Views, Performance Overview, and Hardware Status when OpenSSL 1.0.0 version or higher is used to create self-signed certificates (1025966)

注意:OpenSSL 已在 ESX 上预安装,可用于完成这些步骤。没有在 ESXi 上预安装。

要重新生成已过期的证书,请执行以下操作:
  1. 找到 vCenter Server 系统上的 rui.key 文件。

    注意:在低于 Windows Server 2008 的 Windows 版本上,此位置为:

    C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL

    在 Windows Server 2008 上,此位置为:

    C:\ProgramData\VMware\VMware VirtualCenter\SSL

  2. 将现有 rui.key 复制到安装了 OpenSSL 的系统中。

  3. 创建新的证书和 pfx 文件。

    • 在 Windows 上,运行以下命令:

      openssl.exe req -new -x509 -days 3650 -sha1 -nodes -key rui.key -out rui.crt -subj "fqdn_of_VC"

      其中,fqdn_of_VC 是 vCenter Server 系统的完全限定主机名。如果此命令返回的主题不是以 "/" 开头,请改用以下命令:

      openssl.exe req -new -x509 -days 3650 -sha1 -nodes -key rui.key -out rui.crt -subj "/C=US/ST=CA/L=HAWTHORNE/CN=vcenter_name"

      其中,C = 国家/地区 (US)、ST = 州 (CA)、L = 城市 (HAWTHORNE) 以及 CN = vCenter Server 的名称。

      注意:需要创建 openssl.cnf 文件,并将 -config openssl.cnf 添加到以上命令中。有关详细信息,请参见 Replacing vCenter Server Certificates 指南。

      openssl.exe pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx

    • 在 Linux 或 ESXi/ESX 主机上,运行以下命令:

      openssl req -new -x509 -days 3650 -md5 -nodes -key rui.key -out rui.crt -subj 'fqdn_of_VC'

      其中,fqdn_of_VC 是 vCenter Server 系统的完全限定主机名。

      openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx

    注意:对于自签名证书,请确保使用默认的密码,testpassword。否则,请编辑 %PROGRAMFILES%\VMware\Infrastructure\tomcat\conf\server.xml 文件中的 keystorepass 属性。

    要编辑 keystorepass 属性,请执行以下操作:

    1. 在文本编辑器中打开 %PROGRAMFILES%\VMware\Infrastructure\tomcat\conf\server.xml 文件。
    2. 搜索 <CONNECTOR port="8443" <="" code=""></CONNECTOR>。此行指的是您在更新证书时发生更改的 rui.pfx 证书文件。
    3. keystorePass 属性设置为 rui.pfx 证书密码。密码不能为空。

  4. 停止 VMware VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)
  5. 将新创建的 rui.crtrui.pfx 文件复制到 vCenter Server 系统上的相应目录(从步骤 1)。
  6. 启动 VMware VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)

    注意:在替换 vSphere 4.1/5.0 的证书后,可能需要重新加密数据库密码,这可能会阻止 vCenter Server 启动。要解决此问题,请参见 vCenter Server fails to start after replacing the default SSL certificates with custom SSL certificates (1003070)

在 vCenter Server 5.0.x 上重新生成 vCenter Inventory Service 和 vSphere Web Client 证书

如果运行的是 vCenter Server 5.0.x,则还必须重新生成 vCenter Inventory Service 和 vSphere Web Client 的证书。为避免同一服务器上的不同组件的 SSL 证书之间发生冲突,VMware 建议使用不同的 CN 创建每个证书。

例如,以下命令会从密钥重新生成 Inventory Service 的证书:

openssl.exe req -new -x509 -days 3650 -sha1 -nodes -key rui.key -out rui.crt -subj "/C=US/ST=CA/L=HAWTHORNE/CN=WDC-WIN2K8_InventoryService"

默认情况下,Inventory Service 的 SSL 文件夹位置为:

Inventory_Service_Installation_location\Inventory Service\ssl

默认情况下,vSphere Web Client 的 SSL 文件夹位置为:

vSphere_Web_Client_Installation_location\vSphere Web Client\DMServer\config\ssl


有关 vSphere 4.1/5.0 的其他注意事项

在 vSphere 4.1 中已经更改了替换 SSL 证书的过程。有关详细信息,请参见 Replacing vCenter Server 4.1 and 5.0 SSL certificates using the vpxd -p command fails with the error: failed to do early initialization (1030661)

在 ESXi 4.1 中,可以创建新的自签名证书。有关详细信息,请参见 hostd fails to start with a Crypto Exception error (1021625)

在 vCenter Server 4.1 和 5.0 中,必须将证书重新加载到 Managed Object Browser (MOB)。有关详细信息,请参见:


方法 2(适用于 VirtualCenter 2.5)

使用此方法,会通过安装/修复过程生成新的 VirtualCenter SSL 证书。此方法仅适用于 VirtualCenter Server 2.5,因为 vCenter Server 4.0 和 4.1 没有可用的修复选项。

注意:对于 VirtualCenter 2.5 Update 2 及更低版本,请断开所有 ESX 主机的连接。VirtualCenter 2.5 Update 3 及更高版本会自动断开主机的连接。

要重新生成已过期的证书,请执行以下操作:
  1. 停止 VMware VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)

  2. 浏览到 C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL,然后移除以下文件(或将以下文件移至其他文件夹):

    rui.crt
    rui.key
    rui.pfx


  3. 单击控制面板 > 添加/删除程序,然后在 VirtualCenter Server 安装上选择修复

    警告:确保没有</u>选择初始化数据库。

  4. 在修复完成后,会在以下位置创建 3 个新的 rui 文件:

    C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL

  5. 启动 VMware VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)

  6. 使用 VMware Infrastructure Client 连接到 vCenter Server。ESX 主机会显示为“断开连接”状态。这是预期状态,因为 vpxd.exe 无法使用当前 SSL 证书解密数据库中存储的 vpxuser 密码。

  7. 手动重新连接所有主机。


Additional Information

注意Regenerating expired SSL certificates after 2 years in VMware vCenter Server 4.x / 5.0.x