保姆级教程:彻底解决VMware vCenter证书过期问题(含certificate-manager全流程)
深度解析VMware vCenter证书体系与certificate-manager全流程操作指南当你突然无法登录vCenter管理界面看到浏览器弹出此网站的安全证书已过期的红色警告时作为运维人员的肾上腺素立刻飙升。这不是普通的登录问题而是vCenter证书过期引发的连锁反应——一个让无数VMware管理员夜不能寐的典型场景。1. vCenter证书体系架构解析vCenter的证书系统远比普通Web服务器复杂得多。它采用了分层证书体系包含VMCAVMware Certificate Authority根证书、中间证书以及各类服务终端证书。这些证书共同构成了vCenter的安全通信基础架构。核心证书类型及其作用证书类型生命周期影响范围关键服务VMCA根证书10年全系统证书签发基础STS证书2年身份验证SSO登录、API访问Machine SSL2年Web界面vSphere Client访问Solution User2年扩展功能vSAN、NSX等插件证书过期最直接的表现为用户无法通过浏览器登录vCentervSphere Client连接失败甚至部分自动化脚本突然停止工作。更棘手的是不同证书的过期表现可能各不相同STS证书过期完全无法登录SSO服务中断Machine SSL过期浏览器警告但可能绕过继续操作Solution User证书过期特定功能异常如vSAN监控失效2. 证书状态诊断从症状到根源在开始任何修复操作前准确的诊断至关重要。以下是专业运维团队验证证书状态的标准化流程2.1 基础环境准备首先确保具备以下条件vCenter服务器的SSH访问权限需启用SSH服务root或具有管理员权限的账户至少30分钟维护窗口期生产环境建议安排在非高峰时段# 检查SSH服务状态 service sshd status # 如未运行临时启动SSH服务重启后会恢复默认状态 service sshd start2.2 全面证书健康检查使用内置工具进行系统级证书验证# 检查所有证书存储状态 for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo [*] Store : $store /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie Alias -ie Not After done典型输出解析[*] Store : MACHINE_SSL_CERT Alias : __MACHINE_CERT Not After : Jan 01 23:59:59 2023 GMT # 已过期证书 [*] Store : STS_INTERNAL_SSL_CERT Alias : sts_ssl_cert Not After : Jan 01 23:59:59 2024 GMT # 有效证书注意输出中的Not After日期与当前系统时间对比即可判断证书状态。建议将结果重定向到文件保存记录。3. certificate-manager工具深度应用VMware提供的certificate-manager是处理证书问题的瑞士军刀。但许多管理员仅了解其基本功能未能充分发挥其潜力。3.1 工具启动与模式选择# 进入证书管理交互界面 /usr/lib/vmware-vmca/bin/certificate-manager你会看到8个选项菜单每个选项对应不同的证书管理场景替换Machine SSL证书替换Solution User证书替换VMCA根证书替换STS证书 ...重置所有证书完整更新专业建议在大多数证书过期情况下选择选项8是最彻底解决方案。但对于特定服务证书过期可选择针对性选项以减少影响范围。3.2 全证书重置实操流程选择选项8后的关键交互步骤及技术细节Option[1 to 8]: 8 Do you wish to generate all certificates using configuration file : Option[Y/N]? : Y此处选择Y将使用默认配置文件生成新证书适合大多数标准环境。若需自定义证书参数如企业特定O信息应提前准备certool.cfg文件。身份验证阶段Enter username [Administratorvsphere.local]: Enter password:这里需要vCenter SSO管理员凭证。常见错误是使用本地root账户而非vsphere.local域账户。证书参数配置Enter proper value for Hostname (Provide comma separated values...): vcenter01.example.com这是最关键参数之一必须输入vCenter的完全限定域名(FQDN)。常见错误包括使用IP地址而非域名域名拼写错误未包含完整域名链最终确认阶段You are going to reset by regenerating Root Certificate and replace all certificates using VMCA Continue operation : Option[Y/N]? : Y此步骤将重新生成VMCA根证书并更新所有子证书。生产环境务必确保已备份当前证书可通过vecs-cli导出已通知相关团队可能的服务短暂中断有完整的回退方案4. 操作后验证与故障排除证书更新过程通常需要5-15分钟期间vCenter服务会重启。可通过以下方式监控进度# 查看证书更新日志 tail -f /var/log/vmware/vmcad/certificate-manager.log # 检查服务状态 service-control --status --all常见问题处理服务未自动恢复# 手动重启所有服务 service-control --stop --all service-control --start --all浏览器仍显示旧证书清除浏览器缓存和SSL状态重启客户端机器某些系统会缓存证书链部分功能异常# 重新注册受影响插件 /usr/lib/vmware-vmware-assistants/scripts/vpxd_servicecfg extension unregister /usr/lib/vmware-vmware-assistants/scripts/vpxd_servicecfg extension register5. 证书生命周期管理最佳实践预防胜于治疗。建立完善的证书监控体系可避免紧急修复自动化监控方案#!/bin/bash # 证书过期检查脚本 EXPIRY_THRESHOLD30 # 提前30天告警 check_cert_expiry() { local alias$1 local store$2 local expiry_date$(/usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store $store --alias $alias | openssl x509 -noout -enddate | cut -d -f2) local expiry_epoch$(date -d $expiry_date %s) local current_epoch$(date %s) local days_left$(( (expiry_epoch - current_epoch) / 86400 )) if [ $days_left -le $EXPIRY_THRESHOLD ]; then echo 警告: 证书 $alias 将在 $days_left 天后过期 (到期日: $expiry_date) return 1 fi return 0 } # 检查关键证书 check_cert_expiry __MACHINE_CERT MACHINE_SSL_CERT check_cert_expiry sts_ssl_cert STS_INTERNAL_SSL_CERT企业级管理建议将证书到期监控纳入现有监控系统如vROps建立证书更新日历提前规划维护窗口考虑使用企业CA签发的证书实现集中管理定期演练证书更新流程确保团队熟悉操作在最近一次为客户执行vCenter证书更新的实战中我们发现虽然certificate-manager工具本身可靠但环境特定配置如自定义防火墙规则可能导致服务重启后连接问题。这提醒我们任何标准操作都需要考虑环境特异性准备好回退方案和足够的维护窗口时间。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2496661.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!