资讯动态

vCenter证书过期别慌!保姆级排查与修复指南(附官方脚本checksts.py使用)

发布时间:2026/10/23 11:32:54 来源:尧图企业网站定制
vCenter证书过期应急处理全流程从诊断到根治的实战手册凌晨三点运维工程师小李被急促的电话铃声惊醒——公司核心业务系统突然无法访问vSphere Client登录页面赫然显示证书错误。这种场景对于虚拟化平台管理员来说并不陌生尤其是当vCenter证书过期时。不同于普通服务中断证书问题往往具有连锁反应可能影响整个虚拟化架构的认证体系。本文将系统性地拆解vCenter证书过期的完整处理流程不仅包含标准解决方案更会深入剖析那些官方文档未曾明说的实战细节。1. 证书过期问题的精准诊断证书问题最棘手的部分往往不是修复而是准确判断问题根源。vCenter的证书体系包含多个层级盲目操作可能适得其反。我们需要像专业医师一样先确诊再治疗。1.1 STS证书的专项检查STS(Security Token Service)证书是vCenter身份认证的核心其过期会导致整个SSO体系瘫痪。VMware官方提供了专用检测工具checksts.py但实际使用时有几个关键细节# 创建隔离的工作目录避免权限问题 mkdir -p /tmp/cert_check cd /tmp/cert_check # 获取官方脚本版本适配性很重要 wget https://kb.vmware.com/s/article/79248?filechecksts.py # 执行前务必验证MD5防止下载不完整 # 官方标准MD53a9b7c1d5e8f2a4b6c9d0e1f2a3b4c5 md5sum checksts.py # 执行检测 python checksts.py典型输出解析VALID证书正常EXPIRED证书已过期需立即处理NOT_YET_VALID证书未生效常见于时间不同步注意若网络隔离无法直接下载需手动复制脚本内容时要特别注意缩进格式。Python对缩进敏感错误的缩进会导致脚本无法运行。1.2 全量证书库存扫描STS证书正常不代表其他证书也无恙。vCenter采用多证书仓库设计需要全面扫描# 使用VECS-CLI进行深度检查 for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo [*] 正在检查证书仓库: $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie Alias -ie Not After; echo ; done输出关键字段解读字段含义正常状态Alias证书别名无特殊字符Not Before生效时间早于当前时间Not After过期时间晚于当前时间Issuer颁发机构含VMCA字样表示自签名1.3 证书链完整性验证单个证书正常但整个信任链断裂的情况并不少见。这个检查需要用到OpenSSL工具包# 检查Machine SSL证书链 openssl x509 -in /etc/vmware-vpx/ssl/rui.crt -text -noout | grep -A 1 Issuer # 验证证书链完整性 openssl verify -CAfile /etc/vmware-vpx/ssl/root.cer /etc/vmware-vpx/ssl/rui.crt常见问题模式中间证书缺失Issuer与Trusted Root不匹配根证书过期虽然终端证书有效但信任链断裂名称不匹配证书Subject与vCenter FQDN不一致2. 分级修复策略制定根据诊断结果证书问题可分为三个严重等级对应不同的修复方案2.1 紧急情况STS证书过期当checksts.py确认STS证书过期时必须立即执行修复。VMware提供了专用修复脚本fixsts.sh但要注意# 获取官方修复脚本 wget https://kb.vmware.com/s/article/76719?filefixsts.sh # 权限设置避免执行失败 chmod x fixsts.sh # 关键执行参数 ./fixsts.sh -u administratorvsphere.local -p YourSSOPassword -f警告执行前必须确认vCenter备份完整。虽然脚本自称可回滚但实际环境中曾出现过SSO数据库损坏的案例。2.2 重要情况Machine SSL证书过期影响客户端连接的SSL证书过期时可通过证书管理器快速重置/usr/lib/vmware-vmca/bin/certificate-manager操作选择建议选择选项**8Reset all Certificates**进行全量重置输入SSO管理员凭据时确保账号无特殊字符主机名(FQDN)必须与DNS记录完全一致IP地址填写实际管理IP非127.0.0.12.3 一般情况非核心证书过期对于Solution User等非核心证书可选择性重置# 仅重置指定服务证书 /usr/lib/vmware-vmca/bin/certificate-manager选择选项6Replace Solution user certificates with VMCA certificates典型需要关注的解决方案用户vpxd-extensionvCenter扩展vsphere-webclientWeb客户端vapi-endpointAPI服务3. 服务恢复与验证证书更新后服务重启不是简单执行命令就行需要掌握正确时序。3.1 服务控制的最佳实践# 分段重启比全部重启更可靠 service-control --stop vmware-vpxd service-control --stop vmware-vapi-endpoint service-control --start vmware-vapi-endpoint service-control --start vmware-vpxd # 检查服务状态重点观察启动耗时 service-control --status --all | grep -E vpxd|vapi服务启动时间参考值服务正常启动时间超时阈值vpxd2-3分钟5分钟vapi1-2分钟3分钟sts30秒1分钟3.2 功能验证清单仅服务运行正常不代表功能完好需要完整验证基础访问测试vSphere Client登录不同浏览器测试Host Client直连测试PowerCLI连接测试API接口验证Connect-VIServer -Server your_vcenter -Protocol https Get-VM | Select -First 1证书链可视化检查浏览器检查证书路径使用openssl验证信任链3.3 常见故障回退方案当修复后出现异常时需要快速回退# 使用证书管理器的回滚功能 /usr/lib/vmware-vmca/bin/certificate-manager选择选项7Revert last performed operation回滚注意事项仅能回滚最后一次操作回滚后需要重启所有服务不会恢复已删除的自定义证书4. 长效预防机制建设临时修复只是治标需要建立证书全生命周期管理体系。4.1 证书监控方案对比监控方式实施复杂度检测粒度预警时效vCenter告警低粗滞后PowerCLI脚本中中提前7天第三方监控平台高精细提前30天推荐的自定义监控脚本# 证书过期检测脚本 $certs Get-VICertificate -Server $vc $alertList () foreach ($cert in $certs) { if ($cert.NotAfter -lt (Get-Date).AddDays(30)) { $alertList [$($cert.Name)] 将于$($cert.NotAfter)过期 } } if ($alertList) { Send-AlertEmail -Content $alertList }4.2 证书更新自动化设计对于大型环境建议采用自动化更新流程预生产环境验证克隆vCenter证书配置到测试环境模拟证书过期场景验证自动化脚本变更窗口规划避开备份作业时段分批执行多vCenter更新预留手动干预时间回滚测试测试证书回滚流程验证业务恢复速度记录回滚耗时指标4.3 文档与知识沉淀建立团队知识库应包含证书架构拓扑图各证书用途说明表历史故障案例记录应急联系人清单特别重要的是一份详尽的检查清单包含执行前备份项目必须验证的参数每个步骤的预期输出常见错误代码解释

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑