一直以来,处理vCenter证书过期的办法就那么几个,包括那个看证书的状态的命令:
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
然后用自带的certificate-manager去刷新证书,见https://vmlib.com/vcenter-certificate-expiration-solutions/,处理vCenter证书过期问题很麻烦,办法很繁琐,而且这个自带的证书管理软件certificate-manager只能处理SSL和VCSA根证书,不能处理STS证书。如果是STS证书过期,还要额外下载脚本。
最近,博通VMware推出了一个新的工具叫vCert,见下面4月底的公告:

VMware新工具vCert:一站式解决所有证书问题的脚本工具
按照上面公告的内容,vCert其实就是一个用于vCenter的证书管理,自动替换的脚本工具,可用于检查证书状态、验证证书和服务之间的信任链、清理无效证书,并在证书即将过期或已过期时自动完成替换。
目前支持vCenter 7.x和8.x.
基本所有证书相关的功能的涵盖了:
- 检查当前证书状态
- 查看证书信息
- 管理证书
- 管理 SSL 信任锚点
- 检查证书相关配置
- 使用 VMCA 签发的证书重置所有证书
- ESXi主机上的证书操作
- 重启服务
- 生成证书报告
从博通的公告来看,这个vCert工具的推出,似乎为了打造一个“一站式”证书管理脚本,用以统一替代当前零散繁杂的处理方式。众所周知,VCSA的证书体系错综复杂,尤其是在证书过期之后,处理过程常常涉及多个工具和脚本,如checksts
、fixcerts
、lsdoctor
等,操作门槛较高。看起来博通是要将这些功能整合进这个vCert,通过一个脚本简化整个vCenter证书生命周期的管理流程。
果不其然,我们去checksts和fixcerts脚本各自的KB,已经看到内容更改,都开始推荐vCert了:


所以,从博通目前的方向来看,未来在处理vCenter证书相关问题时,推荐的做法将是统一使用vCert这个工具,不再依赖过去分散的脚本工具如checksts
、fixcerts
,甚至 lsdoctor
。目前来看,包括博主的亲测,的确显著简化了vCenter证书更新和替换的操作流程,这个vCert是有很大的实用性和便捷性的。
vCert的下载与安装
前往以下官方KB文章,拉到最底下,下载文章附件的脚本
https://knowledge.broadcom.com/external/article?articleNumber=385107

下载后上传至 vCenter,然后在脚本所在的目录中运行以下命令以执行该脚本:
# unzip -q vCert-6.0.1-20250516.zip
# cd vCert-6.0.1-20250516
# chmod +x vCert
# ./vCert.py

vCert的使用(vCert菜单选项的详细介绍)
我们可以看到vCert主菜单有以下9个选项
- Check current certificate status
- View certificate info
- Manage certificates
- Manage SSL trust anchors
- Check configurations
- Reset all certificates with VMCA-signed certificates
- ESXi certificate operations
- Restart services
- Generate certificate report
我们来看一下每一个功能的作用:
1. Check current certificate status(检查当前证书状态)
第一个选项,其实就是对vCenter做一个全面的证书健康检查,具体内容包括:
- 检查证书是否已过期
- 检查证书是否将在 30 天内过期
- 检查PNID是否存在于Subject Alternative Name字段中(适用于 Machine SSL)
- 检查是否包含所需的Key Usage值(适用于Machine SSL和Solution Users)
- 检查证书是否配置为使用推荐的Key Usage值
- 检查 CA 证书是否具有Subject Key Identifier扩展字段
- 检查是否存在多个CA证书具有相同的Subject字符串
- 检查证书是否不是CA证书(适用于VMware Directory和VECS中的TRUSTED_ROOTS存储)
- 检查证书链是否缺失某个CA证书
- 检查证书在VECS的TRUSTED_ROOTS存储中是否存在无效的别名(Alias)
- 检查证书是否使用了不受支持的签名算法
- 检查VECS中的Solution User的证书是否与VMware Directory中的Service Principal条目所用证书一致

2. View certificate info(查看证书信息)
选择第二个选项View certificate info后,会出现以下的10个子选项,可以单独看每一个证书的详细信息

- Machine SSL 证书
- Solution User 证书
- VMware Directory 中的 CA 证书
- VECS 中的 CA 证书
- SMS 证书
- vCenter 扩展组件的指纹(thumbprint)
- 查看 STS 签名证书
- VMCA 证书
- 智能卡 CA 证书(Smart Card CA certificates)
- LDAPS 身份源证书
选项 1、2、8 将显示证书的可读信息以及证书的指纹(fingerprint)。
选项 3、4、5、9、10 将显示基本信息列表(Subject、Issuer、有效期、指纹等),并提供从列表中选择证书以查看详细的可读信息和 SHA1 指纹的功能。
选项 6 将显示每个应关联指纹的 vCenter 扩展组件所配置的指纹值。
选项 7 将显示 STS 签名证书的基本信息列表(Subject、Issuer、有效期、指纹等)。
3. Manage certificates(管理证书)
选择第三个Manage certificates后,会出现以下13个子选项

- Machine SSL 证书
- 此选项会替换VECS中的Machine SSL证书,并更新当前节点的SSL信任锚点。可使用VMCA签发的证书或自定义CA签发的证书。
- 自定义CA签发的证书:提供生成私钥和证书签名请求(CSR)的选项,或导入签名后的证书和私钥。如果所提供的CA签发证书不包含完整的CA链,脚本会提示输入包含完整链的文件。
- 此选项会替换VECS中的Machine SSL证书,并更新当前节点的SSL信任锚点。可使用VMCA签发的证书或自定义CA签发的证书。
- Solution User 证书
- 此选项会替换VECS中的Solution User证书,并更新VMware Directory中的Service Principal项。vCenter数据库中的vpxd-extension指纹也被更新。可使用VMCA签发的证书或自定义CA签发的证书。
- 自定义CA签发的证书:提供生成私钥和CSR的选项,或导入签名后的证书和私钥。如果提供的证书不包含完整的CA链,脚本将提示输入完整链文件。
- 此选项会替换VECS中的Solution User证书,并更新VMware Directory中的Service Principal项。vCenter数据库中的vpxd-extension指纹也被更新。可使用VMCA签发的证书或自定义CA签发的证书。
- VMware Directory 中的 CA 证书
- 此选项将显示 VMware Directory 中 CA 证书的信息,并提供发布或移除证书至 VMware Directory 的子菜单选项。
- VECS Directory 中的 CA 证书
- 此选项将显示 VECS 中 CA 证书的信息,并提供提示以删除一个或多个证书(CA 证书需要发布到 VMware Directory,才能被添加到 VECS 的 TRUSTED_ROOTS 存储中)。
- SMS 证书
- 此选项会输出 VECS 中 SMS 存储的条目,包括 vmware-sps 服务使用的证书,以及需要信任的第三方 VASA 提供商证书。子菜单中提供重新生成 SMS 自签证书和 VMCA 签发证书的选项。
- vCenter 扩展组件的指纹(thumbprint)
- 此选项会检查 vpx_ext 表中以下扩展组件的指纹是否存在不匹配情况:
- com.vmware.vim.eam(vpxd-extension)
- com.vmware.rbd(vpxd-extension)【适用于 vCenter 8.0 U2 及之前版本
- com.vmware.vcIntegrity(vpxd-extension)
- com.vmware.vlcm.client(vpxd-extension)【适用于 vCenter 8.0】
- com.vmware.imagebuilder(vpxd-extension)
- com.vmware.vsan.health(Machine SSL)
- com.vmware.vmcam(Authentication Proxy)如发现不匹配,将提示用户更新扩展组件的指纹。
- 此选项会检查 vpx_ext 表中以下扩展组件的指纹是否存在不匹配情况:
- STS 签名证书
- 此选项将备份当前 STS 签名证书及 CA 证书,删除 VMware Directory 中所有 TenantCredential 条目,然后使用 VMCA 签发的证书创建新条目。
- VMCA 证书
- 此选项会替换 VMCA 证书,并重新签发 Machine SSL、Solution User 和 STS 签名证书。可使用 VMCA 签发的证书或自定义 CA 签发的证书。
- 自定义CA签发的证书:提供生成私钥和 CSR 的选项,或导入签名后的证书和私钥。如果所提供的证书不包含完整的 CA 链,脚本会提示输入完整链的文件。
- 此选项会替换 VMCA 证书,并重新签发 Machine SSL、Solution User 和 STS 签名证书。可使用 VMCA 签发的证书或自定义 CA 签发的证书。
- 智能卡 CA 证书(Smart Card CA certificates)
- 此选项将列出反向代理中 Smart Card CA 筛选文件的证书,以及 VMware Directory 中的 Smart Card 签发CA证书。子菜单提供向筛选文件添加/移除证书、向 VMware Directory 添加/移除 Smart Card 签发CA证书的选项。
- LDAPS 身份源证书
- 此选项列出配置于AD over LDAPS身份源(或vCenter7.0中的ADFS)的证书。子菜单提供添加或移除 LDAP 服务器证书的功能。
- 清除 VECS 中 BACKUP_STORE 的过期证书
- 此选项会清除 VECS 中 BACKUP_STORE和(如存在)BACKUP_STORE_H5C中的过期证书。
- 清除 VECS 中的 TRUSTED_ROOT_CRLS 存储内容
- 此选项会清除 VECS 中 TRUSTED_ROOT_CRLS存储的条目。
- 清除 VECS 中的 Machine SSL CSR
- 此选项会清除 VECS 中 MACHINE_SSL_CERT 存储中的
__MACHINE_CSR
条目。该条目是在通过vSphere Client生成证书签名请求时创建的,并包含相应的私钥。
- 此选项会清除 VECS 中 MACHINE_SSL_CERT 存储中的
4. Manage SSL trust anchors 管理SSL信任锚点

- 检查 SSL 信任锚点
- 该操作将输出所有作为SSL信任锚点使用的唯一证书的信息,涵盖Lookup Service注册和当前 SSO域中所有vCenter节点的Machine SSL证书。
还可以输出对应的Service ID和endpoint URI,以显示每个服务注册项/端点所使用的证书。
- 该操作将输出所有作为SSL信任锚点使用的唯一证书的信息,涵盖Lookup Service注册和当前 SSO域中所有vCenter节点的Machine SSL证书。
- 更新 SSL 信任锚点
- 此选项将更新所选vCenter在SSO域中的SSL信任锚点。该方法直接修改相关条目,而非通过 Lookup Service脚本或库进行更新。
5. Check configurations 检查配置菜单

- 检查是否存在SSL拦截
- 此选项尝试连接
hostupdate.vmware.com
的443端口,并检查所呈现证书的签发者是否为 “DigiCert TLS RSA SHA256 2020 CA1”,以识别是否存在SSL拦截(SSL Interception)。 - 如果证书由其他机构签发,系统将提示用户下载所呈现的 CA 证书并发布至 VMware Directory。
若 CA 链不完整,用户将收到通知,需手动安装缺失的 CA 证书。获取到缺失证书后,可通过本选项进行安装。
- 此选项尝试连接
- 检查STS服务器证书及其配置
- 此选项检查 STS 服务是否配置为使用VECS中的 MACHINE_SSL_CERT 存储的证书(通常用于 6.x/7.x 的全新部署),或是否仍使用旧版的STS_INTERNAL_SSL_CERT存储(若系统是从 5.5 升级而来则存在该项)。
- 如果STS被配置为使用非MACHINE_SSL_CERT的证书存储,系统会提示用户更新配置并重启服务。
- 还会检查VMware Directory中的
vmwSTSConnectionStrings
属性:- 若是独立部署的 vCenter,此属性应指向 vCenter 主机名对应的 VMware Directory 实例;
- 若是处于 Enhanced Linked Mode 下的 vCenter,且与其他 vCenter/PSC 节点在同一 SSO 域内,则应通过
localhost
引用 VMware Directory 实例。
若该属性设置不正确,将提示用户更新。
- 检查VECS存储状态及权限
- 此选项检查VECS中默认存储项的存在性及其权限配置。
- 如果发现有存储项缺失,系统将提示用户重新创建。
- 如果某个存储项缺少预期的权限配置,也会提示用户重新分配权限。
- 此选项检查VECS中默认存储项的存在性及其权限配置。
6. Reset all certificates with VMCA-signed certificates(使用VMCA签发的证书来重置所有证书)
此选项将使用由VMCA签发的新证书重置以下证书:
- Machine SSL 证书(包括SSL信任锚点和vCenter扩展组件指纹)
- Solution User 证书(包括 vCenter 扩展组件指纹)
- STS 签名证书(STS Signing)

按了这个选项六,证书全部重置后,VCSA的全部服务需要重启一次:

7. ESXi certificate operations (ESXi主机的证书操作)

- 检查ESXi/vCenter之间的证书信任关系
- 检查VECS中的TRUSTED_ROOTS store,验证ESXi主机上反向代理(443端口) 和IOFilter VASA provider(9080端口) 所使用证书的签发者;同时检查vCenter的Machine SSL证书的签发者,以及
/etc/vmware/ssl/castore.pem
文件中的SMS证书。
- 检查VECS中的TRUSTED_ROOTS store,验证ESXi主机上反向代理(443端口) 和IOFilter VASA provider(9080端口) 所使用证书的签发者;同时检查vCenter的Machine SSL证书的签发者,以及
- 检查ESXi证书是否与vCenter数据库一致
- 将ESXi主机443端口所提供的SSL证书与vCenter数据库中的信息进行比对。如果两者不一致,可能会导致主机上的vSphere HA或vSAN等服务出现问题。
- 替换 ESXi 证书
- 可替换ESXi主机上的
/etc/vmware/ssl/rui.crt
、/etc/vmware/ssl/rui.key
和/etc/vmware/ssl/castore.pem
文件。- ESXi的服务需要重启,才能使新的证书和私钥生效。
- ESXi需要在vCenter中断开连接并重新连接,以便更新vCenter数据库中的新证书信息。
- 可替换ESXi主机上的
8. Restart services重启服务

- 重启所有VMware服务
- 顾名思义,重启全部VCSA服务,跟service-control –restart all的命令一样作用
- 重启指定的VMware服务
- 输入要重启的特定服务的名称。会显示跟
service-control --lis
t命令一样的输出结果,手动输入某一个要重启的服务的名字,然后确认重启。
- 输入要重启的特定服务的名称。会显示跟
9. Generate certificate report 生成证书报告

生成的报告包含以下信息:
- VECS中的所有条目
- VMware Directory中的所有 CA 证书
- VMware Directory中的所有Service Principal(Solution User)
- VMware Directory 中的所有STS签名证书条目
- 文件系统中存储的各种服务证书(如Authentication Proxy、VMware Directory等)
- 用于智能卡认证的CA证书
- 用于 AD over LDAP(s) 身份源的CA证书
- Lookup Service注册使用的SSL信任锚点(SSL trust anchors)
报告将在终端输出,同时也会保存为文件,路径为:/var/log/vmware/vCert
目录下。

最后总结一下,vCert的推出为vCenter证书管理带来了全新的一站式解决方案,无论是Machine SSL、STS签名证书,还是Solution User证书的检查与替换,都可以通过一个统一的工具完成,大大简化了过去繁琐的操作流程。尤其是在vCenter证书即将过期或已经过期的情况下,使用vCert工具能快速排查问题并自动处理,避免服务中断。
如果你在找vCenter证书过期后如何恢复服务、如何替换vCenter STS证书、certificate-manager无法替换所有证书怎么办,或者想了解2025年最新VMware证书管理工具vCert怎么用,这篇文章应该能为你提供清晰的参考。