☰
vSphere证书过期怎么办?vCenter/ESXi证书替换与急救指南
2026/10/3 1:17:08 网站建设 项目流程

当生产环境里所有虚拟机的管理界面突然弹出一片红色告警,或者vCenter登录页反复提示"证书无效",不用怀疑,大概率是证书过期了。这个场景我见过太多次,有的客户是提前收到告警,有的是vCenter服务直接起不来才找到我。这篇就把vSphere证书过期的处理链路完整梳理一遍,从告警识别、根因分析到替换操作,再到日常规避,一次讲透。

1. 告警先分清类型:是"即将过期"还是"已经过期"决定了处理方式

拿到证书告警,第一件事不是急着替换,而是先确认当前到底处于什么状态。我在实际处理中见过两种截然不同的现场,处理的紧迫度和路径完全不同。

1.1 vCenter告警和ESXi告警的区分方法

vSphere环境里证书告警的来源主要有两处:

  • vCenter Server自身证书:包括machine SSL证书、solution user证书、STS签名证书等,这类证书由VMCA(VMware Certificate Authority)统一签发和管理。告警通常出现在vSphere Client的"证书"界面或者系统事件日志里,提示"Certificate for VC is expired"或类似信息。
  • ESXi主机证书:每台ESXi主机也有自己的SSL证书。vCenter与ESXi通讯时会校验彼此证书,一旦主机证书过期,vCenter会报"Host certificate expired"或主机会在"主机"列表里显示证书状态异常。

判断方法很简单:登录vSphere Client后,进入"管理"→"证书"页面,能看到当前证书的颁发者、有效期和状态。如果显示"过期",那就属于已经失效;如果显示"即将过期"或"有效",但系统出现了告警,就要看告警规则里配置的阈值。

1.2 看告警阈值:默认90天提醒是怎么回事

vCenter默认在证书过期前90天就开始发出警告,很多管理员第一次看到这个告警很紧张,实际上这时候证书还在正常工作,完全可以从容安排维护窗口来替换。

我曾经处理过一个案例,客户看到告警后以为是证书被盗用了,先把所有服务重启了一遍,结果VMware证书告警依然存在,最后才发现只是快到期了。所以这里要先给新手吃个定心丸:看到过期告警不等于服务已经停摆,先确认证书实际状态再动手。

如果证书确实已经过了有效期,那就要按紧急程度处理了,第4部分会专门讲这种情况。

2. 根因分析:vSphere证书体系里,到底是谁在过期

要处理证书问题,先得搞明白vSphere的证书架构。很多工程师在证书过期时容易慌,就是因为不清楚这几种证书之间的关系,这里用最直白的方式拆开讲。

2.1 证书主体:VMCA、machine SSL和solution user证书各管什么事

vCenter Server Appliance(VCSA)内置了一套证书体系:

证书类型作用范围常见有效期过期影响
VMCA Root CA签署vCenter和ESXi的所有内部证书10年影响新证书签发和信任链
machine SSL证书vCenter Server对外提供Web/API服务的身份凭证默认2年登录告警、SDK调用失败
solution user证书vCenter内部组件间通信(如vpxd、vsphere-ui等)默认2年组件间通信失败,服务异常
STS签名证书安全令牌服务用于签发用户令牌默认2年用户无法正常认证登录
ESXi主机SSL证书主机与vCenter、客户端之间加密通信默认2年主机连接异常,vCenter无法管理

这里最容易被忽略的是STS证书。有一次遇到vCenter登录页面能打开,但输入账号后一直报"503 Service Unavailable",排查了半天,最后发现是STS签名证书过了有效期,导致所有认证请求失败。这个问题在界面上不会直接显示"证书过期",而是表现成服务不可用,非常具有迷惑性。

2.2 告警阈值与监控机制:vCenter如何发现证书快过期

vCenter通过vmon和vmafd服务周期性检查证书有效期,并把状态同步给vSphere Client。默认规则是:

  • 过期前90天:提示"Warning",证书状态显示正常但会有黄色告警图标
  • 过期前30天:告警级别提升为"Critical",部分自动化任务可能受影响
  • 证书已过期:红色告警,登录页面可能开始出现安全提示

对于ESXi主机的证书,vCenter会通过Hostd服务拉取主机证书信息,一旦发现过期,除了告警还会影响主机与vCenter的信任关系。这就是为什么很多朋友在证书过期后,发现主机显示"已断开"或"无响应"。

2.3 证书有效期查看命令与路径

在VCSA上可以通过SSH登录后用命令直接查看:/usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-ssl-certificate --server localhost --check-expiry,返回结果会显示证书的生效时间和过期时间。

在vCenter UI上,路径是:vSphere Client → 管理 → 证书 → 证书清单,这里能看到所有已签发证书的详细信息。建议把这里的清单截图存档,方便后续对比。

3. 替换前的准备工作:评估影响范围、备份与时间窗口

证书替换不是点两下按钮就完事,操作不当可能会让原本只是告警的问题变成服务不可用。我在每次操作前都严格按下面几步来。

3.1 自查清单:哪些服务依赖证书,哪些操作不能做

先梳理环境里哪些组件在用证书:

  • vCenter Server本身的Web Client和API接口
  • ESXi主机与vCenter的通信通道
  • 如果接了vRealize Operations、vRealize Automation等外部组件,它们也会校验vCenter证书
  • 使用vSphere SDK开发的脚本或对接平台(如OpenStack、Ansible)也会因为证书更换而中断

特别注意:生产环境里如果有依赖vCenter证书做双向认证的应用,替换证书前必须通知相关方,否则证书一换,那些应用的认证立刻失效。

3.2 备份vCenter与证书库:不要跳过这一步

更换证书前必须备份:

  1. 通过VAMI(VCSA管理界面)或命令行执行vCenter文件备份,备份内容包含证书存储。
  2. 在VCSA命令行中用/usr/lib/vmware-vmafd/bin/certificate-manager工具导出当前证书备份。证书管理器本身有--backup选项,执行后会把证书文件打包到指定目录。

我提到的备份路径建议放在非系统盘或者外部存储,避免vCenter本身故障后证书备份也一起丢失。如果环境是VCSA 6.7/7.0/8.0,文件备份可以通过VAMI的"摘要"→"备份"来操作,也可以直接用vami-light工具。

3.3 维护窗口评估:替换过程中哪些服务会中断

替换证书期间,vCenter的以下服务会重启:

  • vpxd(vCenter管理服务)
  • vsphere-ui(Web客户端)
  • vmon(服务监控)
  • 部分solution services

这意味着所有依赖vCenter的操作都会短暂中断,包括虚拟机迁移(vMotion)、克隆、模板部署等。虽然虚拟机本身的运行不受影响,但为了避免在操作窗口内出现意外,建议:

  • 不要在业务高峰执行证书替换
  • 提前通知虚拟化团队和运维同事
  • 如果环境里有DRS(分布式资源调度)等自动化,建议暂关或知会

我用一个表格来总结影响范围,方便大家提前评估:

操作影响持续时间
vCenter服务重启管理界面和API短暂不可用10-30分钟
正在执行的vMotion任务可能中断,需要重试视任务进度
使用SDK的自动化脚本认证失效,需要更新证书信任需配合更新
ESXi主机通信主机显示断开再重连5-15分钟

4. 正式处理:使用certificate-manager替换过期证书

到了动手环节。注意,这里讲的是常规替换,也就是vCenter本身还能正常登录、服务还在运行的场景。证书已经过期导致服务起不来的情况在第5部分单独讲。

4.1 登录VCSA命令行,进入证书管理器

VCSA的证书管理工具路径是/usr/lib/vmware-vmafd/bin/certificate-manager。通过SSH登录VCSA后,直接执行该命令,会进入一个交互式菜单:

/usr/lib/vmware-vmafd/bin/certificate-manager

菜单选项包括:

  • 选项1:替换machine SSL certificate
  • 选项2:替换solution user certificates
  • 选项3:替换STS certificate
  • 选项4:重置为VMCA签名证书
  • 选项5:恢复证书备份

如果只想处理告警且没有自定义证书需求,最简单的做法是重新用VMCA签发新证书,也就是选项4(重置为VMCA签名证书)或对应的替换选项。这里有个重要的决策点:你的环境是用VMCA自签证书,还是用了企业CA签发的证书?如果是后者,必须走"替换为自定义证书"的流程;如果是前者,直接重置为VMCA签发即可。

4.2 分步演示:重新签发VMCA证书并重启服务

以最常见的"用VMCA重新签发"为例:

  1. SSH登录VCSA,执行/usr/lib/vmware-vmafd/bin/certificate-manager
  2. 输入选项1(替换machine SSL证书),回车
  3. 选择"Option 1: Replace with VMCA Certificate",回车
  4. 系统会列出当前证书信息,确认后输入y继续
  5. 等待脚本自动生成新证书并重启服务
  6. 脚本执行完成后退出,再执行service-control --start --all确保所有服务正常启动

这里有个细节:选项3(STS证书替换)和选项2(solution user证书替换)最好也一并检查。三者往往有效期相同或相近,只替换某一个,可能过几天另一个又报警。我一般会直接跑一遍选项4(全部重置为VMCA签发),一次性把内部证书全部刷新,最省事。

4.3 使用VAMI图形界面替换的替代路径

如果你的环境不方便用命令行走交互菜单,也可以从VAMI(https://vcenter-ip:5480)的"证书管理"页面操作。在VAMI里选择"证书管理",可以查看machine SSL证书、解决用户证书的有效期,并进行替换。不过VAMI里的操作选项没有命令行那么全,如果是要批量重置,我还是推荐命令行方式。

4.4 替换之后的验证:证书状态、服务状态、ESXi连接

证书替换完成后,验证步骤不能省:

  1. 用vSphere Client登录,看是否还有证书告警
  2. 进入管理→证书→证书清单,确认新证书的有效期和颁发者
  3. 查看主机列表,确认所有ESXi主机都显示已连接
  4. 在命令行执行service-control --status --all,确认所有服务都是Running状态
  5. 测试一次虚拟机操作(比如打开控制台或者创建快照),确认SDK接口正常

如果做完以上验证,原来的告警消失且服务正常,这个证书替换就算完成了。

5. 证书已过期导致服务异常时的急救流程

证书过期到服务完全起不来,这套处理流程大多数管理员没经历过,一旦碰上会非常紧张。这里讲两种常见情况以及对应的急救方案。

5.1 登录vCenter报503或SSO认证失败:STS证书过期怎么办

前面提到过,STS证书过期的一个典型症状是vSphere Client能打开登录页,但输入账号密码后报503服务不可用,或者一直转圈认证失败。

这种场景下,VCSA的vmon服务可能已经停止或者循环重启。急救步骤如下:

  1. SSH登录VCSA,先执行service-control --status --all查看哪些服务异常
  2. 如果vmon或vmafd异常,先执行service-control --start --all尝试拉起服务
  3. 如果服务能起来但认证仍失败,立即执行certificate-manager,选择"选项3"替换STS证书
  4. 替换完成后重启所有服务

重要提示:如果连SSH都登录不了,或者VCSA本身已经停摆,就需要从VAMI的恢复模式或者部署镜像来恢复了,这时可能需要参考VMware官方KB来重建证书机制,不建议在没有备份的情况下随意操作。

5.2 ESXi主机证书过期导致主机断开连接,如何重连和替换

vCenter里看到某台ESXi主机一直显示"已断开",但IP能ping通,SSH也能登录,这种情况很可能是主机证书过期导致的信任关系破裂。

处理方法:

  1. 在vCenter的"主机和集群"里,右键断开的主机,选择"连接",此时可能会因为证书校验失败而报错
  2. 在弹出的证书告警对话框中,选择"信任该主机证书"或者"忽略证书错误",如果vCenter还保留了原证书指纹,有时需要先移除原证书记录
  3. 如果界面操作无法成功,可以SSH登录ESXi主机,重启hostd服务:/etc/init.d/hostd restart或/bin/restartMgmtService.sh
  4. hostd重启后,vCenter重新尝试连接并获取主机的证书信息,此时弹窗提示证书指纹变化,点"信任"并连接

至于主机证书本身的替换,如果是vSphere 6.x及以上,可以通过vCenter的"证书"界面批量重置主机证书:管理→证书→ESXi证书→选择主机→重置为VMCA签名证书。

这里有一个容易踩的坑:如果ESXi主机root密码忘了或者SSH没开,就只能通过DCUI(直接控制台用户界面)或者vSphere CLI来操作了,所以在日常运维中SSH配置和密码管理也属于证书维护的间接保障。

5.3 事后检查:确认所有主机证书均为受信任状态

急救完成之后,要再巡视一遍证书清单:

  • 确认所有主机的证书状态都显示"正常"
  • 确认vCenter的machine SSL证书、solution user证书、STS证书都显示有效
  • 如果发现某个证书显示"无法识别"或"不受信任",需要重新进行"重置证书"操作

这一步不能偷懒,我在一次急救中只处理了vCenter的STS证书,没有管ESXi主机证书,结果两天后另一台主机也告警了,还是同样的墙头问题,来回折腾。后来总结规律:要么不动,动了就要整套证书链一起校一遍。

6. 避免再次"中招":证书过期告警的预防与日常巡检

处理完眼前的告警,更重要的长效机制是让这类问题不再复发。下面是我自己环境里常用的预防方案,照着做基本不会再被证书问题打猝不及防。

6.1 开启vCenter证书监控和邮件通知

vCenter本身支持设置证书告警规则,但告警默认只是界面显示,不会主动通知人。要真正做到"提前发现",建议做两件事:

  • 在vCenter的"管理"→"告警定义"里,搜索证书相关告警,把告警动作绑定到邮件或SNMP,这样证书快过期时第一时间收到通知。
  • 对接运维监控平台(如Zabbix或Prometheus),通过vCenter API定期检查证书有效期。用简单的脚本每月跑一次,输出所有证书的剩余天数,低于90天就告警给我。

这类脚本本质上就是调用vCenter的证书管理接口,把有效期解析出来。只要是管理员账号,用PowerCLI或者Python都能实现。

6.2 规划统一证书有效期,放到同一个维护窗口处理

很多环境的混乱来源于每台主机、每个组件的证书有效期不同步,今天这台过期、下周那台过期,运维工作量翻倍。

我的建议是每年固定一个时间窗口,统一把所有VMCA内部证书重置一遍。比如每年春节或国庆假期后第一个维护窗口,执行一次certificate-manager的选项4,把vCenter和所有主机的证书重新签发,确保有效期全部往后推两年。这样做的好处是:一次操作,一整年不用再操心证书问题。

要注意的是,重置为VMCA签名证书后,如果有外部应用需要校验vCenter证书,它们的信任库也要同步更新,这个在维护窗口的公告里要一并说明。

6.3 企业CA证书环境的额外注意事项:根证书更新与信任链

如果你的vCenter用了企业CA签发的证书,而不是VMCA自签,替换流程会稍微复杂一些。这里建议:

  • 确保企业CA的根证书和中间证书都在有效期以内,根证书过期会导致整个信任链崩塌。
  • 替换企业证书时,需要提前准备好私钥和证书链文件(通常包括服务器证书、中间证书、根证书),在certificate-manager中选择"替换为自定义证书"并上传。
  • 证书格式必须是PEM格式,私钥不能加密(或者至少知道加密口令)。

用企业CA证书有一个优势是外部系统信任更容易建立,但换来的是更繁琐的更换流程。如果你对证书体系还不熟悉,建议先用VMCA自签,等成熟后再切换企业CA。

6.4 定期演练证书恢复流程

很多运维团队直到证书彻底出问题才第一次打开certificate-manager,这种"第一次操作就在生产环境"的风险太高了。我建议在测试环境或有维护窗口时,主动演练一次证书替换的全流程,熟悉每个菜单选项、每条命令的反馈,真正遇到问题时就能不慌不忙地处理。

另外,在虚拟机里保留一份VCSA安装镜像或设备备份,万一证书问题导致vCenter彻底无法恢复,可以用备份直接还原,这会比修复证书快得多。毕竟有些情况下,重建vCenter比修证书更省事——但如果有文件级备份,恢复通常是最快的路径。

7. 处理证书过期过程中踩过的坑与反思

最后分享几个实际的案例和心得,都是我用真金白银换来的教训。

7.1 不要在证书未备份的情况下直接重置

有一次,我在处理一台vCenter证书告警时,图省事跳过了备份,直接执行了certificate-manager的重置。做完后证书确实更新了,但问题在于那台vCenter的证书是被某自动化运维平台做双向认证用的,重置后平台无法连接vCenter,整整影响了一个晚上,最后不得不重新配置平台的信任证书。

教训:任何环境下,证书替换前先做备份;生产环境有外部系统依赖的,先通知再动手。

7.2 注意VCSA版本差异导致命令行为不同

VCSA 6.5、6.7、7.0和8.0的certificate-manager路径和菜单都略有差异。比如6.5的路径是/usr/lib/vmware-vmafd/bin/certificate-manager,到7.0和8.0还是一样的,但部分选项的交互提示有变化。如果你照着老版本的操作笔记去执行新版本,可能会在某个菜单项上卡住。

好习惯是:操作前用/usr/lib/vmware-vmafd/bin/certificate-manager --help或直接运行看看菜单,确认当前版本的实际选项,再对照官方文档执行。

7.3 处理完成后把新证书的有效期记录到运维台账

证书替换完成后,把新证书的过期时间、证书类型、颁发者等信息记录到运维台账,会省很多事。因为证书有效期一般是1-2年,时间一长容易忘记上次是什么时候换的,下次告警时翻台账就能很快确认状态。

台账里还可以记录一下替换操作的命令和步骤,方便其他人接手时快速了解环境情况。毕竟运维不是一个人的事,文档化也是对团队负责。

7.4 留给新手的三个核心建议

如果你是第一次处理vSphere证书过期,请记住这三句话:

  • 先看证状态再动手,告警不等于失效
  • 先备份再更换,这是底线
  • 替换完成后验证三件事:证书状态、服务状态、主机连接状态

证书过期是vSphere运维里最容易让人措手不及但又完全可预防的问题。只要周期性花十分钟检查一下证书有效期,就能免去大多数应急处理。希望这篇内容能帮你从容应对证书告警,而不是等到深夜收到报警短信时再手忙脚乱地翻文档。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询