当前位置: 首页 > news >正文

vSphere 6.7U3g证书突然过期,凌晨三点救火记:手把手教你用fixsts.sh脚本修复STS证书

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脚本前,这些保护措施能避免灾难性后果:

  1. 创建离线快照
    在vSphere Host Client中对VCSA虚拟机执行关机状态快照,确保可回退

  2. 检查系统时间同步
    错误的系统时间会导致新证书立即失效:

    timedatectl status hwclock --hctosys systemctl restart chronyd
  3. 下载官方修复工具
    准备两种下载途径以防网络问题:

    # 主下载源 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
  4. 处理Windows换行符问题
    若脚本报/bin/bash^M错误,执行:

    sed -i 's/\r$//' fixsts.sh

3. 脚本执行与故障排除

赋予执行权限后,直接运行脚本会提示输入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. 验证与后续加固

修复成功后,立即验证各功能模块:

  1. 证书有效期检查

    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
  2. 服务状态确认

    watch -n 1 'service-control --status --all | grep -v "running"'
  3. 预防性措施
    在日历中添加证书到期提醒,设置提前6个月的周期性检查:

    # 添加至crontab每月检查 0 3 1 * * python /usr/lib/vmware-vmafd/share/scripts/checksts.py | mail -s "STS Cert Check" admin@example.com

5. 深度技术解析:为什么STS证书如此关键

STS(Security Token Service)是vSphere的身份认证核心,其证书过期会导致整个信任链断裂。与普通SSL证书不同,STS证书具有以下特殊性:

  • 签发机制:由VMware Certificate Authority(VMCA)自动生成
  • 影响范围:影响所有API调用、UI登录和组件间通信
  • 更新限制:不能通过常规证书管理界面续订

证书生命周期对比:

证书类型默认有效期可续期影响范围
STS证书2年需脚本全局认证
Machine SSL10年可界面更新加密通信
Solution User5年自动轮换特定服务

这次深夜救火让我再次意识到,对于vSphere这类关键系统,不能仅依赖监控告警。建立完善的证书资产管理体系,才是避免凌晨紧急处理的根本之道。现在,是时候去补个觉了——当然,是在确认所有监控项都恢复绿色之后。

http://www.jsqmd.com/news/669408/

相关文章:

  • 别再手动调点了!用Matlab搞定NURBS曲线插值,从数据点到光滑曲线一步到位
  • GPL14951芯片注释实战:从平台识别到探针转换的完整指南
  • Avalonia实战:手把手教你打造无边框物联系统界面(附完整源码)
  • PaddleOCR-VL-WEB场景应用:金融票据手写信息提取,快速部署实战指南
  • 《SAP FICO系统配置从入门到精通共40篇》033、财务信息系统(FIS):创建自定义报表与 Drilldown
  • 告别SystemExit: 2:深入剖析parser.parse_args()的报错根源与实战修复
  • 从PyCharm安装说开去:一文搞懂Linux里那些‘绿色软件’(.tar.gz)该怎么伺候
  • 告别重启焦虑:手把手教你用UEFI Capsule Update实现Windows/Linux系统固件无感升级
  • 别再傻傻用pickle存大数组了!试试joblib的Memory缓存,速度提升不止一点点
  • 从GitHub高星C++内存池项目中提炼的三种设计哲学与选型指南
  • 从Excel高级筛选到Pandas:如何用Python一键搞定你的复杂报表条件?
  • 从太空到芯片:基于银河飞腾DSP与FPGA的星载实时图像识别系统全解析
  • AI进化论:从图灵测试到ChatGPT,那些改变游戏规则的技术里程碑
  • 从8051到ESP32:聊聊GPIO这些年背后的硬件设计变迁(附Arduino代码对比)
  • 告别时序烦恼:手把手教你用FPGA的SPI接口正确读写MCP2518FD寄存器(附ILA调试技巧)
  • Vue项目里用Lottie动画,除了播放暂停,这5个高级玩法你试过吗?
  • 【仅限首批200名开发者开放】AGI情感交互沙盒环境正式解封:含7类真实社交冲突场景数据集与动态共情评分API
  • 别再复制粘贴了!手把手教你用Vivado封装一个带AXI-Lite和AXI-Stream的IP核(附源码结构解析)
  • 用Wireshark抓包分析极域电子教室V6.0 2016豪华版,手把手教你实现局域网内学生机互控
  • 告别环境配置烦恼:用Docker一键部署RKNN-Toolkit2开发环境(支持RK3566/RK3588)
  • Xshell连不上虚拟机?除了IP和防火墙,这3个Windows服务状态别忘了看一眼
  • 03华夏之光永存:黄大年茶思屋榜文解法「难题揭榜第9期 第3题」超低功耗智能预测唤醒与状态同步技术工程化解法
  • 手把手教你用OpenWrt+DDNS+Nginx,把内网画图工具安全地搬到公网访问(附避坑指南)
  • 简单园区实验拓扑
  • 【嵌入式Linux应用开发】从SquareLine Studio到开发板:LVGL UI高效开发与移植实战
  • 不止于暴力破解:用‘滑动窗口’思路优雅解决PTA连续因子问题(L1-006)
  • 【EndNote】文献类型与缩写实战指南:从入门到精通
  • Spring Boot 2.x + MyBatis 连接 Doris 数据库保姆级教程(附完整项目源码)
  • Vue3 + Element Plus 侧边栏折叠实战:从布局适配到图标切换的完整避坑指南
  • 用PYNQ-Z2开发板从零实现HDMI彩条显示:Vivado 18.3实战教程(附完整源码)