今天分享下遇到的一个关于 vCenter 主机管理的问题——在 vCenter Server 8.x 的 Web 客户端中,尝试添加旧版本的 ESXi 主机时会失败,提示证书指纹验证超时,并且 GUI 中没有提供接受证书指纹的选项。查了一下 VMware KB 429083,原来这是由于旧版本 ESXi 主机的 SSL 证书不符合现代 vCenter 的验证标准导致的。
故障现象还原
1. 添加主机操作失败
在 vCenter Server 8.x 的 Web 客户端中,当尝试添加旧版本的 ESXi 主机时:
-
- 操作会超时
- 没有提供接受证书指纹的选项
- 任务失败,显示类似以下错误:
"Login to host [IP_Address] failed. The certificate on 1 host could not be verified. The SHA1 thumbprints of the certificate is listed below. To continue connecting, manually verify this certificate and accept the thumbprint below."
2. 证书问题分析
旧版本 ESXi 主机的证书可能存在以下问题:
- 使用过期的证书
- 使用过时的哈希算法(如 SHA1)
- 使用自签名证书,未被 vCenter Server 信任
核心原因分析
根据 KB 429083 的解释,问题的根本原因是:
vCenter Server 8.x 的 Web 客户端无法自动验证旧版本 ESXi 主机的 SSL 证书
现代的 vCenter Server 对 SSL 证书的验证更加严格,而旧版本 ESXi 主机的证书可能不符合这些要求,导致验证过程超时和失败。
解决方法:使用 PowerCLI 强制添加
1. 准备工作
# 确保安装了 PowerCLI 模块
# 打开 PowerShell(以管理员身份)
Install-Module -Name VMware.PowerCLI -Scope CurrentUser -AllowClobber
# 接受 PowerCLI 的许可证
Set-PowerCLIConfiguration -Scope CurrentUser -ParticipateInCeip $false -Confirm:$false
2. 连接到 vCenter Server
# 使用 PowerCLI 连接到 vCenter Server
Connect-VIServer -Server -User -Password
3. 强制添加 ESXi 主机
# 使用 -Force 参数强制添加 ESXi 主机
# 确保使用 root 用户凭证(这是必需的)
Add-VMHost -Name -Location "" -User root -Password -Force
4. 验证添加成功
# 检查添加后的主机状态
Get-VMHost -Name | Select-Object Name, ConnectionState, PowerState
# 验证主机是否已加入集群
Get-Cluster -Name | Get-VMHost
操作步骤详解
1. 确认环境信息
# 获取 vCenter 服务器版本
Get-VIServer | Select-Object Name, Version, Build
# 获取集群信息
Get-Cluster | Select-Object Name, NumHosts, NumVMs
2. 检查 ESXi 主机状态
# 在 ESXi 主机上,检查管理代理状态
/etc/init.d/hostd status
/etc/init.d/vpxa status
3. 强制添加主机的细节
# 使用详细参数的强制添加命令
Add-VMHost -Name
-Location (Get-Cluster -Name ) -User root
-Password -Force ` -RunAsync:$false
故障排除
1. 证书可能已损坏
# 如果强制添加仍失败,可能是证书损坏
# 登录到 ESXi 主机(使用 root 用户)
ssh root@
# 重新生成证书
/sbin/generate-certificates
# 重启管理代理
/etc/init.d/hostd restart
/etc/init.d/vpxa restart
2. PowerCLI 命令失败
# 检查 PowerCLI 版本兼容性
Get-Module VMware.PowerCLI | Select-Object Version
# 尝试使用不同的 PowerCLI 版本
# 如果当前版本有问题,可以卸载并重新安装
Uninstall-Module -Name VMware.PowerCLI -AllVersions -Force
Install-Module -Name VMware.PowerCLI -RequiredVersion 13.1.0 -Scope CurrentUser -AllowClobber
3. 网络连接问题
# 检查网络连接
Test-NetConnection -ComputerName -Port 443
# 检查 DNS 解析
Resolve-DnsName -Name
预防措施
1. 升级旧版本 ESXi 主机
# 检查 ESXi 主机版本
Get-VMHost | Select-Object Name, Version, Build | Sort-Object Version
# 制定升级计划,将旧版本 ESXi 主机升级到受支持的版本
2. 定期检查证书状态
# 在 ESXi 主机上检查证书状态
openssl x509 -in /etc/vmware/ssl/rui.crt -text -noout
# 检查证书过期日期
openssl x509 -in /etc/vmware/ssl/rui.crt -text -noout | grep "Not After"
3. 使用 CA 签名证书
# 考虑为 ESXi 主机配置 CA 签名证书,而不是使用默认的自签名证书
# 这需要一个企业 CA 和相关配置
Reference: VMware KB 429083







