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

vSphere 6.7证书过期导致vCenter登录不了?别慌,这份保姆级修复指南(含fixsts.sh脚本详解)

vSphere 6.7证书过期紧急修复全流程:从诊断到恢复的实战指南

凌晨三点,运维团队的告警铃声突然响起——vCenter突然无法登录,整个虚拟化平台陷入瘫痪。这不是普通的系统故障,而是隐藏在系统深处两年的"定时炸弹"终于引爆:STS证书过期。本文将带您一步步走过这个惊心动魄的修复过程,不仅解决当前危机,更建立长效预防机制。

1. 紧急诊断:确认证书过期问题

当vCenter突然无法登录时,首先需要快速判断是否由STS证书过期引起。以下是典型的症状表现:

  • Web界面表现:输入正确凭证后反复跳回登录页面,或直接显示"400 Bad Request"错误
  • 错误提示特征:可能伴随"Signing certificate is not valid"或"503 Service Unavailable"等消息
  • 服务状态异常vmware-vpxd服务停止运行,无法自动恢复

快速验证方法

# 检查vpxd服务日志中的关键错误 tail -n 50 /var/log/vmware/vpxd-svcs/vpxd-svcs.log | grep -i "certificate" # 使用内置命令检查证书状态 /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store vpxd-extension --text | grep -A 3 "Alias"

如果日志中出现类似"Signing certificate is not valid"的错误,且证书的"Not After"日期已经过去,即可确认是STS证书过期问题。

2. 修复前的关键准备工作

证书修复操作具有不可逆性,必须做好充分准备:

风险控制清单

  1. 创建离线快照:通过vSphere Client对vCenter虚拟机执行完整快照
  2. 备份关键配置
    # 备份证书存储 cp -r /etc/vmware/vmware-vmafd /root/vmafd-backup # 备份SSO配置 /usr/lib/vmware-vmca/bin/certool --backup --file=/root/vmca-backup.tar
  3. 准备维护窗口:通知所有用户系统将不可用,建议预留2小时维护时间
  4. 下载修复工具
    wget https://kb.vmware.com/sfc/servlet.shepherd/version/download/068f400000JAn50AAD2 -O /tmp/fixsts.sh chmod +x /tmp/fixsts.sh

注意:修复脚本必须在SSO域内的单个PSC上执行,嵌入式部署则直接在vCenter上运行

3. 分步执行修复脚本

获得fixsts.sh脚本后,按以下流程操作:

脚本执行流程

  1. 环境检查

    # 验证脚本完整性 head -n 5 /tmp/fixsts.sh | grep -q "VMware" && echo "脚本有效" || echo "脚本损坏" # 解决可能的格式问题 sed -i -e 's/\r$//' /tmp/fixsts.sh
  2. 实际执行

    cd /tmp ./fixsts.sh

    脚本运行时需要输入:

    • SSO管理员密码(通常是administrator@vsphere.local的密码)
    • 确认执行操作(按提示输入'y')
  3. 典型输出解析

    ================================== Resetting STS certificate for vcsa01.example.com Detected DN: cn=vcsa01,ou=Domain Controllers,dc=example,dc=com Detected PNID: vcsa01.example.com Detected SSO domain name: example.com ================================== Certificate regeneration completed successfully Please restart all services

常见错误处理

错误现象解决方案根本原因
"Operation timed out"手动逐个启动服务:
service-control --start vmware-vpxd
服务依赖关系导致启动超时
"bash: bad interpreter"执行格式转换:
dos2unix fixsts.sh
Windows换行符不兼容
"Permission denied"检查执行权限:
chmod +x fixsts.sh
脚本未赋予执行权限

4. 服务恢复与验证

脚本执行完成后,必须按顺序完成以下步骤:

服务重启序列

  1. 停止所有服务:
    service-control --stop --all
  2. 按顺序启动关键服务:
    for svc in vmdird vmware-sts-idmd vmware-postgres vmware-vpxd; do service-control --start $svc sleep 30 done
  3. 启动剩余服务:
    service-control --start --all

验证方法

# 检查新证书有效期 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 -A 2 "STS" done # 测试Web访问 curl -k https://localhost/ui -I | grep "200 OK"

5. 长效预防机制建设

为避免未来再次出现证书过期问题,建议建立以下机制:

自动化监控方案

  1. 定期检查脚本(每月执行):

    #!/bin/bash EXPIRY=$(/usr/lib/vmware-vmafd/bin/vecs-cli entry getcert \ --store vpxd-extension --alias STS | openssl x509 -noout -enddate) echo "STS证书过期时间:$EXPIRY"
  2. 告警集成

    • 将证书检查纳入Zabbix/Nagios监控项
    • 设置提前90天、30天、7天的多级告警
  3. 证书生命周期管理

    • 建立所有vSphere证书的登记表
    • 对即将到期的证书设置日历提醒

版本升级建议

  • vSphere 7.0+已改进证书管理机制
  • 如无法立即升级,至少应用最新补丁:
    # 检查可用更新 vumcli update get --all

6. 高级故障排除技巧

当标准流程失效时,可尝试以下方法:

深度修复方案

  1. 手动证书替换

    # 生成新证书 /usr/lib/vmware-vmca/bin/certool --gencert \ --config=/usr/lib/vmware-vmca/share/config/vmca.cfg \ --outcert=/tmp/newsts.crt --outprivkey=/tmp/newsts.key # 导入证书 /usr/lib/vmware-vmafd/bin/vecs-cli entry create \ --store vpxd-extension --alias STS --cert /tmp/newsts.crt \ --key /tmp/newsts.key
  2. 数据库修复

    # 备份VMDIR数据库 /opt/vmware/bin/vmdirdb-backup -u administrator -w <password> -b /root/vmdir-backup # 必要时执行修复 /opt/vmware/bin/vmdir_recover -H /var/lib/vmware/vmdir -E

日志分析要点

  • 重点关注/var/log/vmware/vpxd/vpxd.log中的证书相关错误
  • 使用时间过滤加速排查:
    grep -n "certificate" /var/log/vmware/vpxd/vpxd.log | awk -F: '{print "行号:"$1,"内容:"$3}'

7. 架构层面的最佳实践

从长期运维角度,建议:

证书管理策略

  • 使用企业CA:替代VMCA签发证书,实现集中管理
  • 标准化有效期:统一设置为5年,避免频繁更换
  • 自动化续订:通过PowerCLI脚本实现证书自动更新:
    Connect-VIServer -Server vcsa01 Get-VICertificate | Where {$_.DaysUntilExpire -lt 30} | Update-VICertificate -Confirm:$false

环境加固建议

  1. 启用证书吊销检查:
    vmdir-cli set-config -k "certificateRevocationCheck" -v "required"
  2. 配置证书透明度日志:
    /usr/lib/vmware-vmca/bin/certool --set-transparency --url ct.example.com

在完成所有修复步骤后,记得更新运维文档,记录此次事件的处理过程和经验教训。虚拟化平台的稳定性不仅依赖于技术方案,更需要完善的运维流程和应急机制作为保障。

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

相关文章:

  • GHelper:华硕笔记本的终极轻量级控制神器,告别Armoury Crate的臃肿烦恼
  • 从TM1到TM9:手把手教你用Wireshark和商用路测软件分析LTE空口传输模式切换
  • Outlook 2016 通讯簿与联系人显示设置详解:让你的发件体验更清爽
  • DS4Windows完整指南:5分钟让PS4手柄在Windows上完美运行
  • Agent Harness 的代码重构指南
  • 人亚校园墙 - 更新日志
  • 别再只会调速度了!用STM32的定时器中断精准控制伺服电机转角(避坑指南)
  • Obsidian页面美化全攻略:自定义行间距与页面宽度,打造舒适阅读体验
  • 从LoRRA到M4C:手把手拆解Text-VQA经典模型的演进与代码实践
  • GStreamer开发避坑指南:GstBuffer内存管理与引用计数那些事儿
  • LLC谐振变换器:从感性工作区到ZVS实现的深度时序剖析
  • 手写Redis缓存预热工具:增量更新+断点续传+一致性保障(实战落地版)
  • 别再死记硬背了!用立创EDA+Excel,手把手教你搭建个人电子元器件库(附避坑清单)
  • 你的三维柱状图颜色用对了吗?深度解析Matlab中colormap与caxis的配合技巧
  • 鸣潮终极自动化助手:解放双手,轻松提升游戏效率的完整指南
  • 如何用ModAssistant快速解决Beat Saber模组安装的3大痛点
  • 告别手动拉框!用Label Studio + YOLOv5实现图像标注自动化(保姆级教程)
  • Protues8新手必看:5分钟搞定示波器设置,轻松生成李沙育图形
  • Laravel 8.x核心特性全解析
  • 实时可视化组件设计
  • 别再只会轮询了!用STM32F407的HAL库玩转串口中断收发,附变长数据接收实战代码
  • BGP选路深度解析:当Next Hop遇上IGP开销,如何避免网络中的“不对称路由”?
  • 高效B站数据分析利器:Bilivideoinfo帮你一键获取完整视频数据
  • 【SAP Abap】BAPI_PO_CREATE1 实战:从零构建采购订单的完整数据流与关键配置
  • C盘红了别慌!手把手教你清理Windows休眠文件hiberfil.sys,轻松腾出几个G空间
  • 终极指南:reinstall - 5分钟完成VPS系统重装的完整解决方案
  • 别再谈“AI替代”了:SITS2026圆桌重构范式——AGI正在重定义“人类智能”本身,3类新职业已爆发,但90%人连准入门槛都未看清
  • 技术装饰器中的功能添加与行为扩展
  • 游戏AI不再需要预设脚本?SITS2026公布首个通过Turing-Game Test的AGI NPC(附完整评估协议与12项通关指标)
  • Fan Control终极指南:免费Windows风扇控制神器,打造静音高效散热系统