vSphere证书危机深夜紧急修复STS证书过期的全流程实录凌晨三点的手机震动声在寂静中显得格外刺耳。运维团队群里的告警消息不断刷屏vCenter无法登录所有虚拟机管理操作中断。抓起笔记本的瞬间我意识到这很可能又是一起STS证书过期引发的紧急事件——这种两年一次的定时炸弹总爱在深夜爆发。本文将完整还原从故障定位到修复的全过程手把手带你用官方fixsts.sh脚本化解证书危机。1. 故障现象与快速诊断当vCenter突然拒绝所有登录请求时第一要务是确认是否属于STS证书过期问题。以下是典型的症状组合前端表现输入正确密码后反复跳转登录页面HTTP 400错误或直接显示503服务不可用后台日志检查/var/log/vmware/vpxd-svcs/vpxd-svcs.log可见关键报错ERROR [...] Server rejected the provided time range. Cause:ns0:InvalidTimeRange: Signing certificate is not valid [...] cert validity: TimePeriod [startTime..., endTime...]快速验证证书状态的两种方法方法一使用官方检查脚本wget https://kb.vmware.com/sfc/servlet.shepherd/version/download/068f400000JAn50AAD -O checksts.py python checksts.py方法二直接查询证书存储/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store vpxd-extension --text | grep -A1 Not After注意证书过期后Web界面通常无法访问必须通过SSH连接VCSA操作2. 修复前的关键准备工作拿到fixsts.sh脚本前这些保护措施能避免灾难性后果创建离线快照在vSphere Host Client中对VCSA虚拟机执行关机状态快照确保可回退检查系统时间同步错误的系统时间会导致新证书立即失效timedatectl status hwclock --hctosys systemctl restart chronyd下载官方修复工具准备两种下载途径以防网络问题# 主下载源 wget https://kb.vmware.com/sfc/servlet.shepherd/version/download/068f400000JAn50AAD -O fixsts.sh # 备用下载源 wget https://kb.vmware.com/sfc/servlet.shepherd/version/download/068f400000HW9InAAL -O fixsts.sh处理Windows换行符问题若脚本报/bin/bash^M错误执行sed -i s/\r$// fixsts.sh3. 脚本执行与故障排除赋予执行权限后直接运行脚本会提示输入SSO管理员密码chmod x fixsts.sh ./fixsts.sh典型问题及解决方案错误现象原因分析解决措施Operation timed out服务启动超时手动逐个启动关键服务Failed to connect to endpoint证书未生效强制重启vmware-vpxd服务Invalid credentialsSSO密码错误确认密码或重置SSO配置服务重启的正确顺序service-control --stop --all service-control --start vmdird service-control --start vmware-sts-idmd service-control --start --all重要提示整个SSO域内只需在一台PSC上执行脚本多节点重复执行会导致数据不一致4. 验证与后续加固修复成功后立即验证各功能模块证书有效期检查for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo [$store] /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -A1 Not After done服务状态确认watch -n 1 service-control --status --all | grep -v running预防性措施在日历中添加证书到期提醒设置提前6个月的周期性检查# 添加至crontab每月检查 0 3 1 * * python /usr/lib/vmware-vmafd/share/scripts/checksts.py | mail -s STS Cert Check adminexample.com5. 深度技术解析为什么STS证书如此关键STSSecurity Token Service是vSphere的身份认证核心其证书过期会导致整个信任链断裂。与普通SSL证书不同STS证书具有以下特殊性签发机制由VMware Certificate AuthorityVMCA自动生成影响范围影响所有API调用、UI登录和组件间通信更新限制不能通过常规证书管理界面续订证书生命周期对比证书类型默认有效期可续期影响范围STS证书2年需脚本全局认证Machine SSL10年可界面更新加密通信Solution User5年自动轮换特定服务这次深夜救火让我再次意识到对于vSphere这类关键系统不能仅依赖监控告警。建立完善的证书资产管理体系才是避免凌晨紧急处理的根本之道。现在是时候去补个觉了——当然是在确认所有监控项都恢复绿色之后。