Vcenter 6.7证书过期连环坑:从503报错到密码错误,我的完整修复记录
凌晨2点15分,手机警报突然响起——监控系统显示生产环境的Vcenter服务不可用。作为运维负责人,我立刻远程连接服务器,映入眼帘的是熟悉的503报错页面。这原本应该是一次常规的证书更新操作,却意外演变成持续6小时的噩梦级排障之旅。本文将完整还原这次事故中遇到的每一个"坑",以及如何通过vdcadmintool和certificate-manager两大神器最终化险为夷。
1. 故障初现:当503遇上服务启动失败
连接SSH后首先检查服务状态,执行service-control --status --all显示多项关键服务异常。尝试启动全部服务时,遇到了第一个意外:
root@vc01 [ ~ ]# service-control --start --all ... Failed to start eam, sca, sps, vpxd, content-library, cis-license, vsphere-client, vsphere-ui, analytics, vapi-endpoint, statsmonitor, vmware-postgres-archiver, vsan-health, vpxd-svcs services. Error: Operation timed out此时访问Web界面返回的503错误信息尤为关键:
503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x0000558db7faee10] _pipeName=/var/run/vmware/vpxd-webserver-pipe)关键诊断步骤:
- 检查
/var/log/vmware/vpxd/vpxd.log发现大量证书验证失败记录 - 确认机器SSL证书有效期:
openssl x509 -in /etc/vmware-vpx/ssl/rui.crt -noout -dates - 发现证书已于3天前过期
注意:此时若直接替换证书可能遭遇"签名无效"错误,需先解决根证书链问题
2. 证书修复的深水区:当常规方案失效
参照官方文档执行fixsts.sh脚本后,服务依然无法启动。这是第一个重大转折点——常规修复流程在6.7版本可能不完全适用。通过分析日志发现更底层的问题:
/var/log/vmware/vmdird/vmdird.log: [ERROR] SSL handshake failed: error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher此时需要采用核武器级解决方案——完全重建证书链。进入/usr/lib/vmware-vmca/bin/certificate-manager选择第4项:
| 4. Regenerate a new VMCA Root Certificate and | | replace all certificates |操作流程中的关键配置项:
| 参数项 | 推荐值 | 必填说明 |
|---|---|---|
| Country | CN | 必须符合PKI标准 |
| Organization | 公司英文名 | 需与原有证书保持一致 |
| Hostname | vc01.yourdomain.com | 必须使用完整FQDN |
| IPAddress | 192.168.1.100 | 多个IP用逗号分隔 |
3. 意外转折:管理员密码突然失效
当执行到证书替换的身份验证步骤时,系统提示:
Enter username [Administrator@vsphere.local]: Enter password:连续三次输入确认正确的密码后,竟然返回认证失败!这是本次排障最令人崩溃的时刻。经过排查发现:
- 证书过期导致SSO服务异常
- 密码策略服务停止工作
- 最后一次密码修改未正确同步到目录服务
密码重置操作实录:
root@vc01 [ ~ ]# /usr/lib/vmware-vmdir/bin/vdcadmintool ================== 3. Reset account password ================== Please enter account UPN : administrator@vsphere.local New password is - ZIP|*|*6:o=NnzoU/8P1紧急提示:获取到临时密码后需立即登录Web控制台修改,该密码仅一次性有效
4. 完整修复流程与验证
完成证书重建和密码重置后,需要按顺序执行以下操作:
服务重启序列:
service-control --stop --all && service-control --start --all验证关键服务:
- vpxd(核心服务)
- vsphere-ui(Web界面)
- vmdird(目录服务)
证书链验证:
openssl verify -CAfile /etc/vmware-vmca/root.cer \ /etc/vmware-vpx/ssl/rui.crt最终检查清单:
检查项 预期结果 实际结果 Web登录 正常加载 API调用 返回有效数据 vCenter HA状态 正常 备份作业 可正常创建
凌晨5点40分,当绿色登录界面终于出现在屏幕上时,我做了三件事:立即修改管理员密码、创建新的证书过期监控项、在知识库中详细记录本次故障的所有细节。这次经历再次证明——在虚拟化环境中,证书管理绝不是简单的到期更新,而是需要建立完整的生命周期监控体系。