vCenter证书过期解决方法

发布时间 2023-09-21 11:20:55作者: 时光2020

vCenter证书过期解决方法

 目录

1 概述   

2 详细操作步骤        

2.1 检查关键的STS证书是否过期并修复        

2.2 检查除STS证书外是否还有其余证书过期        

2.3 续订除STS和data-encipherment以外的证书        

2.4 续订data-encipherment证书        

2.5 删除BACKUP_STORES certificat        

3 FAQ        
3.1 VMCA为关键步骤,且不可逆,执行之前注意先生成快照。        

概述
vCenter内含各种证书,部分证书过期会导致登录webclient时,出现“获取身份认证程序时出错”(https://ip/ui),“no healthy upstream”(https://ip)的提示,导致无法登陆,错误代码500、400。本手册介绍证书过期问题的解决方法。

 

 详细操作步骤


2.1 检查关键的STS证书是否过期并修复

STS 证书过期时不会触发证书到期警报。安全令牌服务(STS)证书过期时,将导致内部服务和解决方案用户无法获得有效的令牌,从而无法按预期工作在证书到期前3个月完成证书的更新及续签。

检查 vCenter Server 上 STS 证书的过期日期

(参考官方KB:https://kb.vmware.com/s/article/79248?lang=en_us)

上传检测脚本

脚本文件:

 通过SCP协议将脚本问价上传至vCenter Server


以winscp工具为例,将脚本上传到新建的/tmp2目录

  通过SSH协议登陆vCenter Server Appliance

输入shell,进入shell命令视图

执行chsh -s /bin/bash root,赋予root用户执行脚本权限:

 执行脚本 python checksts.py

 从结果得知STS没有过期。

注:如果STS过期,则执行修复脚本,并重启服务:

 service-control --stop --all


service-control --start --all

2.2 检查除STS证书外是否还有其余证书过期

完成关键的STS证书检测(和修复)后,检查其他证书到期情况

通过命令检查:

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;

 从结果得知:有多个证书已过期。


2.3 续订除STS和data-encipherment以外的证书

 通过VMCA 来重新生成 vSphere 6.x 证书

启动 vSphere Certificate Manager。

    对于vCenter Server 6.x Appliance:

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

    对于 Windows vCenter Server 6.x:

C:\Program Files\VMware\vCenter Server\vmcad\certificate-manager

 选择8或4,执行功能相同

根据 VMCA 的提示,输入以下项的值:

 

重点项:

Enter proper value for 'Hostname' [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] :这个值要和vCenter Server的主机名一致。

Enter proper value for VMCA 'Name' :  (注意:vCenter Server 6.0 U3、6.5 及更高版本将要求提供此信息,您可以在此字段中使用 vCenter Server 的 FQDN。 它将作为 VMCA 根证书的公用名) 没有配置FQDN就是用IP地址。

开始执行更新

 ………………………………………………

 

更新完成后会重启,再次用命令检查是否还有证书到期。

证书期限都正常后,访问vCenter WebClient,确认各项服务是否正常。

一般情况到此可解决问题,若不正常继续续订data-encipherment证书。

2.4 续订data-encipherment证书

参考官方KB:https://kb.vmware.com/s/article/88548?lang=en_US

续订、修复脚本

 上传脚本,使用 SSH 会话连接到 vCenter Server


导航到存放脚本的 /tmp2目录:

cd /tmp2

运行chmod +x fix_encipherment_cert.sh使文件可执行。

运行./fix_encipherment_cert.sh

重新启动 VPXD 服务以使更改生效

service-control --stop vpxd

service-control --start vpxd

 2.5 删除BACKUP_STORES certificat

参考KB:Clearing BACKUP_STORES certificates in the VCSA via shell script (82560)
VMware Knowledge Base    https://kb.vmware.com/s/article/82560?lang=en_US

使用下列命令检查证书:

   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

如果 STORE BACKUP_STORE 下有过期或过期证书,请继续运行上传的脚本clean_backup_stores.sh

 :
将脚本上传到 VCSA 到 /tmp2/ 目录

通过运行使脚本可执行:chmod +x clean_backup_stores.sh

使用以下命令运行脚本:./clean_backup_stores.sh

注意:您可能会收到错误消息:  -bash: ./clean_backup_stores.sh: /bin/bash^M: bad interpreter: No such file or directory。

如果是这样,请运行:  sed -i -e 's/\r$//' clean_backup_stores.sh

使用命令  service-control --stop --all && service-control --start --all重启服务

继续“确认”和“重置为绿色”任何与证书相关的警报

3 FAQ

VMCA为关键步骤,且不可逆,执行之前注意先生成快照
————————————————

版权声明:本文为CSDN博主「heliang@wind.com」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/autoset/article/details/128259566