解决vCenter6.x由于证书过期问题无法登录

解决vCenter6.x由于证书过期问题无法登录

近期比较多客户遇到由于证书过期问题导致vCenter突然无法登录,这里做一个汇总。(也适用于vCenter 7.x)

故障现象可能如下:

1、vCenter无法登录,输入了用户名和密码,却一直提示输入用户名和密码。

2、vCenter页面直接显示503 Service Unavailable

这时候,可能就是遇到了证书已过有效期的问题。vCenter 的证书在安装部署时,⼀般是默认10 年的,vCenter 6.5 以后的部分版本存在证书只有2 年有效期的问题。

主要是验证两类证书:一类是STS证书(参考第一和第二),还一类是其他证书(参考第三和第四)。

解决办法:

一、验证是否因为STS证书原因导致。

1、从KB79248 的网页下载一个Python 的小程序checksts.py(文末有下载)
2、上传到vCenter Server 或外部的PSC。上传到VCSA 的/tmp 目录,或者Windows Server 的%TEMP%目录。(如果使用工具无法连接,可以将 shell 更改为 bash shell 来使用 SCP,命令如下:chsh -s/bin/bash root)
3、进到/tmp 目录:cd /tmp
4、运行 python checksts.py

可以看到证书的有效期,如果过期了,继续往下更新证书。

二、更新STS证书。

注意:在进行下列操作之前,将vCenter 的虚拟机做备份并打快照。
1)从KB76719 的网页下载脚本fixsts.sh。(文末有下载)
2)将这个脚本上传到vCenter/PSC Server 上的临时目录/tmp 下。
3)进入目录:cd /tmp
4)将脚本改为可执行模式:chmod +x fixsts.sh
5)运行脚本:./fixsts.sh

可以看到有提示成功的字样,这样STS证书就更新好了。

6)重启vCenter,如果是STS证书到期导致,此时应该能正常登录了。

如果还不能正常登录,继续往下更新其他证书。

备注:如果是Windows版本的vCenter更新证书,需要使用PowerShell script去更新证书,参考以下kb:

https://kb.vmware.com/s/article/79263

三、验证是否因为其他证书原因导致。

7)查询其他证书过期情况

for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done

如发现其他证书也存在过期情况,继续想办法更新这些证书。

如图,上述有证书就是2023年1月15日到期。

四、更新其他证书

8)参考KB2097936,使用certification Manager 替换其他过期证书。

要启动 vSphere Certificate Manager,请运行如下命令:

  • vCenter Server(Windows 版本):C:\Program Files\VMware\vCenter Server\vmcad\certificate-manager
  • vCenter Server Appliance:/usr/lib/vmware-vmca/bin/certificate-manager

运行 certificate-manager 命令时,将为您提供 8 个选项,如屏幕截图中所示。

选择选项 8 进行操作,根据提示,在「Hostname」输入vc的FQDN,在VMCA Name输入与Hostname相同的值(如果是以ip部署的vc,请输入ip地址)。其余按回车保持默认即可。

耐心等待提示100%更新成功后,vCenter就已经可以正常登陆了。

PS:当遇到各种报错更新失败的时候,除了检查有没有填写正确,确保正确之外不妨重启一下vCenter再次重复进行一下上面的操作。

如何规避:

检查当前vCenter 证书到期时间:
1)6.5 及以下的操作方法是:https://vc-ip/psc,然后选择:证书 – 证书管理– 选择证书 – 续订
2)6.7 的操作方法是:主页 – 系统管理 – 证书 – 证书管理 – 选择证书 – 操作 – 续订

本文中提到的两个文件,点此下载checksts.py和fixsts.sh

dinghui.org

关注虚拟化及IT技术发展!

3条评论

vCenter使用 VMCA 续订证书:续订证书时发生意外错误 – 杂七杂八 发布于12:19 - 2022年10月15日

[…] 在之前很多客户遇到过证书到期无法登陆的时候,使用certificate-manager更新证书,参考:解决vCenter6.x由于证书过期问题无法登录,第二章第7节,本次继续采用该方式更新证书。 […]

    mmx 发布于17:13 - 2022年12月15日

    大佬 VCSA 6.0 猜测 U2 以后的版本都有STS 二年证书到期的问题,而且官方KB 补丁无效用 虚拟机测试过。

      dinghui.org 发布于22:11 - 2022年12月15日

      的确,此KB仅仅针对6.5及以上。针对6.0版本的问题,VMware早就已经不提供任何形式的技术支持,建议尽快升级。