VMware虚拟机证书过期无法启动的直接原因是主机证书(Host Certificate)或VECS存储中的证书已失效,修复的核心思路是删除过期证书并用certool工具重新生成。 证书文件位置取决于你的部署方式:Windows版vCenter的证书存放在C:ProgramDataVMwarevCenterServercfgvmware-vpxssl目录下,而VAMI(虚拟设备管理界面)方式部署的vCenter则位于/storage/db/vmware-vpx/ssl,下文将按场景拆解排查和修复全流程。
证书过期前的典型症状:别等到彻底瘫痪才动手
虚拟机启动报错通常不是一瞬间发生的,多数情况下,证书过期前一周左右就会露出端倪,如果你遇到以下现象,大概率是证书在“闹脾气”:
- 通过vSphere Client登录时,浏览器反复弹出“不安全连接”警告,点击“继续前往”后页面空白或直接跳回登录页。
- 在vCenter的“证书管理”界面中,证书状态显示“已过期”或“即将过期”,剩余天数低于30天时系统会开始告警。
- 使用PowerCLI或API调用时,返回
SSL certificate verify failed或证书验证失败等类似提示。 - 虚拟机文件本身完好,但主机服务(如
vmware-vpxd)启动后立即退出,查看日志文件中出现X509 certificate has expired相关记录。
行业共识认为,超过一半的VMware环境故障与证书过期有关,只是很多运维人员往往等到服务完全起不来才去排查,与其等它“罢工”,不如提前知晓证书文件藏在哪里。
证书文件到底在哪?分场景定位你的证书仓库
证书文件的存放路径不是统一的,它取决于你使用的是Windows版vCenter还是VAMI虚拟设备,以及是否需要区分STS签名证书和机器证书。
Windows版vCenter Server 6.x及以上
在Windows服务器上,证书和私钥默认存放在以下路径:
| 组件 | 路径 | 说明 |
|---|---|---|
| vpxd证书(机器证书) | C:ProgramDataVMwarevCenterServercfgvmware-vpxssl |
包含rui.crt(证书)和rui.key(私钥) |
| STS签名证书 | C:ProgramDataVMwarevCenterServercfgvmware-stskeystore |
受Java Keystore保护,需用keytool访问 |
| vSphere Web Client证书 | C:ProgramDataVMwarevCenterServercfgvsphere-clientvc-pkgssl |
负责443端口通信 |
注意:ProgramData是隐藏目录,需要在文件资源管理器中手动显示隐藏项目才能看到,如果你的vCenter安装在非系统盘(比如D盘),把盘符对应替换即可。
VAMI虚拟设备(vCenter Server Appliance)
很多生产环境使用VCSA(虚拟设备方式部署),证书路径如下:
- 机器证书位置:
/storage/db/vmware-vpx/ssl - VECS(VMware Endpoint Certificate Store)备份目录:
/storage/db/vmware-vpx/vecs - 常用工具路径:
/usr/lib/vmware-vpx/vecs和/usr/lib/vmware-vpmc/bin
ESXi主机自身证书
如果你只需要修复ESXi主机(而非vCenter),证书位置略有不同,SSH登录后进入/etc/vmware/ssl/目录,看到hostd.crt和hostd.key即是主机的SSL证书文件,这里有一个容易混淆的点:ESXi主机的证书变更和vCenter证书变更是两套体系,如果只有主机重启报错,优先排查主机证书有效期,不要动vCenter的任何文件。
具体怎么修复?三步搞定过期证书
清楚了证书文件位置,修复就顺理成章了,请务必按以下步骤来操作,不要跳过备份环节。
第一步:备份现有证书和配置
无论哪种修复方式,备份永远排在第一位,命令如下:
- Windows版:复制整个
ssl文件夹到其他分区,或者直接右键压缩保存一份。 - VAMI(VCSA):SSH登录后执行
cp -r /storage/db/vmware-vpx /root/ssl_backup。 - ESXi主机:执行
cp /etc/vmware/ssl /tmp/ssl_backup -r。
同时建议导出当前证书详情留档,命令是openssl x509 -in rui.crt -text -noout。
第二步:重新生成(或自动续期)证书
对于vCenter,推荐使用官方提供的certool工具,它比手动删除证书更安全,操作路径如下:

- SSH登录VAMI设备(或Windows版直接打开管理员命令行)。
- 切换到工具目录:
cd /usr/lib/vmware-vmca/bin(Windows版在C:Program FilesVMwarevCenterServervmware-vmcabin)。 - 查看当前证书信息:
./certool --list。 - 重新生成自签名证书:
./certool --selfca,该命令会读取配置文件中的信息生成新证书。 - 更新VECS存储:
./certool --vecs,同步到vpxd服务。
对于ESXi主机,相对简单,SSH登录后执行:
/etc/init.d/hostd stop rm /etc/vmware/ssl/rui.crt /etc/vmware/ssl/rui.key /etc/init.d/hostd start
主机重启后会自动生成新的自签名证书,此操作只需重启管理服务,不影响已在运行的虚拟机。
第三步:重启服务并验证
证书更新后,不要急着重启整个系统,先重启相关服务验证:
- vCenter(VAMI设备):
service-control --stop --allservice-control --start --all。 - Windows版:重启
VMware VirtualCenter Server服务。 - 浏览器重新访问vSphere Client,看是否还提示证书问题。
验证通过后,再用openssl x509 -noout -dates查看新证书有效期,确保不再是过期的日期。
常见修复踩坑点汇总
实践中,修复证书时几个点最容易出错,值得单独提示:
- 忽略时区影响:证书有效期判定依赖系统时间,如果服务器时间与NTP严重偏移,即使刚生成的证书也可能瞬间过期,修复前先校时(
ntpdate -u pool.ntp.org或通过vCenter时间设置)。 - 只删除文件不清理VECS存储:在VCSA中,如果只删除
/storage/db/vmware-vpx/ssl下的crt/key而不重置VECS,重启后服务仍会报错,务必执行vecs-cli store delete或使用certool的--vecs参数同步。 - 权限不够导致生成失败:certool工具必须在root权限(VAMI)或管理员权限的CMD/PowerShell(Windows)下运行,否则会报
Permission denied。
如果你在Windows环境:替换证书文件的手动方案

偶尔用certool自动生成失败时,也可以走“手工替换”这条路:
- 从备份中提取出未过期的证书和私钥(或向内部CA申请新证书)。
- 将
rui.crt和rui.key放到指定目录下,覆盖旧文件。 - 重新启动
VMware VirtualCenter Server服务。
Windows环境下证书文件路径中不同组件对应不同的服务,比如vmware-vpxd对应vpxd证书,vsphere-client对应Web Client证书,如果替换后仍然报错过期,检查你需要修的是哪个组件的证书,而不是把全部证书都换一遍。
怎么预防下一次证书过期?
修复完成后,请务必设置一道“预防针”:
- 在vCenter的证书管理页面启用自动续期,到期前30天系统会自动生成新证书并替换。
- 配置NTP时间同步,避免因时间偏移导致证书判定提前失效。
- 在监控平台(如Zabbix或Prometheus)上添加证书剩余有效期告警,提前7天触发提醒,比人工记录日历靠谱得多。
常见问题解答
问:VMware证书过期后,虚拟机里的数据会丢失吗?
不会,证书过期只影响vCenter和ESXi的管理平面通信,虚拟机磁盘文件和数据本身完全不受影响,修复完成后,所有虚拟机数据依旧完整,可以正常开机和管理。
问:ESXi主机的证书和vCenter的证书需要同时修复吗?
如果vCenter管理的所有主机都出现连接失败,需要同时检查两边的证书有效期,多数情况下只需修复vCenter即可恢复管理,因为它是根信任方,但若ESXi主机的证书是自己手动更换过且已过期,就需要单独在主机上删除旧证书并重启hostd服务,让它自动生成新证书。
问:手动删除证书文件后,服务启动失败怎么办?
如果删除后服务无法启动,通常是因为私钥和证书不匹配,或者VECS存储内仍残留旧记录,解决方案是回到备份目录,恢复原始文件,确认服务能够正常启动,再重新按步骤通过certool生成,直接修改文件不是第一选择,优先使用VMware自带的证书管理功能。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/910247.html


评论列表(2条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是证书部分,给了我很多新的思路。感谢分享这么好的内容!
@帅cyber101:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是证书部分,给了我很多新的思路。感谢分享这么好的内容!