vCenter6.7登录报错503或登录时报错“请提供用户名和密码“等证书过期问题,VMware vCenter证书更新方法

vCenter6.7登录报错503或登录时报错“请提供用户名和密码“等证书过期问题,VMware vCenter证书更新方法

1 更新证书前建议通过ESXi对vCenter打快照,防止vCenter崩溃。创建快照时,取消生成内存快照。

image-20240104165046587

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;

一月 Jan;二月 Feb;三月 Mar;四月 Apr;五月 May;六月 Mun;七月 Jul;八月 Aug;九月 Sept;十月 Oct;十一月 Nov;十二月 Dec。

之后建议按照步骤进行排查,但是也可以碰运气直接使用certificate-manager重置所有证书,具体流程查看章节5

3 检查并更新STS证书

STS证书会影响用户登录时间认证等问题。

3.1 查看STS证书是否过期

上传checksts.py到vCenter

image-20240104170416048

checksts.py根据官方文档获取:下载地址

文件位置如图所示

image-20240104174814827

可以使用winscp进行上传,文件协议要选择SCP

image-20240104170558230

开启文件上传功能见文章:开启SSH和BASH Shell

cd 到上传文件的目录,使用如下命令进行检查,如果圈出的位置不为0,则需要继续更新STS证书。

python checksts.py

image-20240104174940589

3.2 更新STS证书

上传fixsts.sh到vCenter

fixsts.sh根据官方文档获取:“Signing certificate is not valid” error in VCSA 6.5.x/6.7.x and vCenter Server 7.0.x ,8.0.x. (76719) (vmware.com)

image-20240104175729057

cd到上传文件的目录,使用如下命令更新STS证书

./fixsts.sh

使用如下命令重启所有服务(一般会超时很多服务启动不起来,如果全部重启成功,就说明证书都好了,不需要后面操作了)

service-control --stop --all && service-control --start --all

4 使用lsdoctor工具修复SSL信任

重置证书时有可能会遇到SSL信任不匹配问题,即可使用该方法进行修正。

参考文章:过期的VMware vCenter证书 ·vNinja.net

4.1 检测是否存在SSL信任不匹配

上传lsdoctor.zip工具到vcenter

lsdoctor.zip根据官方文档获取:使用“lsdoctor”工具 (80469) (vmware.com)

image-20240104190951523

cd到文件上传目录,使用以下命令解压lsdoctor.zip

unzip lsdoctor-230919.zip  #具体文件名请根据下载后的文件更改

cd到解压后的目录下

image-20240104191208151

使用如下命令进行检测SSL信任,若报错如图所示,则说明存在SSL信任缺失问题。

python lsdoctor.py -l

image-20240104191508571

4.2 解决SSL信任不匹配问题

根据提示,运行如下指令,解决SSL信任不匹配问题。运行过程一律输入y,需要输入密码的时候切记输入SSO域的密码,也就是登录vCenter的web页面的密码,而不是root的密码。

python lsdoctor.py -t

成功运行之后可以再次检测,确认问题已经得到解决。

5 使用certificate-manager重新注册所有证书

用这个会重新注册所有证书,但是不包括STS证书和data-encipherment证书。

参考官方文档:如何使用 vSphere 证书管理器替换 SSL 证书 (2097936) (vmware.com)

如何使用自签名 VMCA 重新生成 vSphere 6.x、7.x 和 8.0 证书 (2112283) (vmware.com)

首先使用如下命令获取vCenter上的PNID,应该获得一个ip,也有可能是域名,我的获取的就是ip

/usr/lib/vmware-vmafd/bin/vmafd-cli get-pnid --server-name localhost

image-20240104193452789

运行如下命令启动certificate-manager

/usr/lib/vmware-vmca/bin/certificate-manager

image-20240104193711291

建议直接输入8重置所有证书,也可根据官方文档自行选择。并输入y继续下一步。

image-20240104194106737

输入SSO域的用户名和密码,也就是vCenter的web界面的用户名和密码,不是root的。

image-20240104194202741

输入y选择重新配置配置文件。之后输入相关信息,可以更改之前的信息,也可以直接回车使用默认值或之前的信息。

image-20240104194332101

IPAddress输入vCenter的ip地址,Email应该也就是SSO域的用户名,也可回车直接使用之前的信息,Hostname和VMCA Name输入vCenter的域名,没有域名就输入ip地址,这个就和最开始的PNID相同。

image-20240104194628147

输入y继续证书生成操作。

image-20240104194815175

最后会在在**75%**的时候关闭所有服务,85%的时候启动所有服务,如果都启动成功则会显示100%,说明证书更新成功,则可正常登录web页面。

6 可能存在的问题

6.1 使用certificate-manager重置所有证书时,都没有到75%,直接程序退出并报错。

解决参考文章:更换过期的 PSC 和 VCSA 证书 – Mueller-Tech

导航到目录/usr/lib/vmware/site-packages/cis

cd /usr/lib/vmware/site-packages/cis

image-20240104195445422

备份certificateManagerHelper.py文件

cp certificateManagerHelper.py certificateManagerHelper.py.bak

编辑certificateManagerHelper.py文件,并找到如下两个代码段

vim certificateManagerHelper.py

image-20240104195945230

image-20240104195957305

两个代码段的第二行替换为如下代码,注释代码段第三行(命令模式下dd即可删除光标所在行)

rc = 0

image-20240104200123286

image-20240104200131271

:wp保存文件

6.2 使用certificate-manager重置所有证书时,进度长时间卡在85%,并且之后变为0%,查看日志文件报错有几个进程无法开启

先检查在重置证书前输入的信息是否正确,再检查SSL信任和STS证书是否没问题。

如果都没问题,参考大佬文章2.4节和2.5节尝试进一步解决。

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值