问题现象:
登录Vmware VC系统报错:Vmware报错 HTTP状态 500 - 内部服务器错误、
然后登录管理服务(访问端口:5480)重启一下异常服务,结果提示证书过期。
初步判断VC SSL证书到期
判定方法:
1.登录管理系统,开启VC的ssh服务,设置延时时间
2。ssh登录到vc系统
使用root账号登录vc系统,使用命令shell进入命令行
3.执行命令:
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;
出现以下结果:
即可发现第一行ssl证书过期,可以确定此故障现象是由于ssl证书过期导致
解决方法:
以下链接为官网给出的详细解决方法:
How to Replace Expired Certificates on vCenter Server using Fixcerts Python Script
按照官网提示,我这边操作如下:
1.根据以下提示,下载网站给出的脚本文件fixcerts_3_1.py(此文章链接有对应的文件,有困难的用户可以从我这下载)
2.打开fixcerts_3_1.py脚本中的内容,全部选中,复制,然后在vc中输入命令:
vi /tmp/fixcerts.py
鼠标右键,粘贴刚复制到的内容,保存退出
3.执行命令,替换只过期的证书
python fixcerts_3_1.py replace --certType expired_only
然后输入administrator@vsphere.local账号的密码:
后面都输入yes
最后可以发现,ssl证书时间默认被更新了2年;如果想要时间更长怎么办呢?在脚本后面加一个参数即可,然后执行命令:
python fixcerts_3_1.py replace --certType machinessl --validityDays 3650
后面操作follow以上步骤,依次输入yes,最后即可发现,ssl证书更新了10年,然后使用以下命令重启vc所有服务:
service-control --stop --all && service-control --start --all
4.登录vc系统,系统管理–》证书管理
参考经验:
使用命令行验证和解决过期的 vCenter Server 证书
How to Replace Expired Certificates on vCenter Server using Fixcerts Python Script