AppServer/

关于 vCenter Server 中“Certificate Status”告警的处理

发布
修订
未修订
字数
398
阅读
1 分钟

有一台 vCenter Serever 老是报名为“Certificate Status”,状态为“Critical”的告警。在 Monitor-Events 下面按日期时间找到这个告警信息:

bash
02/21/2023, 14:36:48 Certificate 'OU=xxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,O=VMware,L=Palo Alto,ST=California,C=US,CN=wcp' from 'wcp' expires on 2022-11-27 03:46:18.000

看这意思是 wcp 证书过期了。

查了一下资料,解决了。记录一下。
先用命令查一下现在所有的证书状态:

bash
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

可以看到 wcp 证书确实过期了。现在就需要更新这个证书了。

这里要用到系统自带的证书工具 certool 。
先找到 certool 的配置文件,按自己的实际情况制作一个复本:

bash
cp /usr/lib/vmware-vmca/share/config/certool.cfg /tmp
vi /tmp/certool.cfg

然后生成新的证书:

bash
/usr/lib/vmware-vmca/bin/certool --genkey --privkey=/tmp/wcp.priv --pubkey=/tmp/wcp.pub
/usr/lib/vmware-vmca/bin/certool --gencert --privkey=/tmp/wcp.priv --cert /tmp/wcp.crt --Name=wcp --config /tmp/certool.cfg

使用这个命令生成一个列表:

bash
/usr/lib/vmware-vmafd/bin/dir-cli service list

然后找到 wcp 开头的字符串,如 wcp-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 这样的。

然后停下服务:

bash
service-control --stop --all
service-control --start vmafdd
service-control --start vmdird
service-control --start vmcad

然后更新一下:

bash
/usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --cert /tmp/wcp.crt
/usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store wcp --alias wcp
/usr/lib/vmware-vmafd/bin/vecs-cli entry create --store wcp --alias wcp --cert /tmp/wcp.crt --key /tmp/wcp.priv
service-control --start --all

再看一下,证书已经更新了:

bash
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;

如上参考官方 KB。

评论

正在载入评论…

留下评论

人机验证
四位数字,看不清可点击图片刷新

评论经审核后显示。

回到顶部 ↑