本文旨在帮助大家了解 vCenter各版本证书的类型、有效期以及当证书即将过期时如何应对。希望能为 vCenter Server 用户在管理和维护证书时提供一定的帮助。
vCenter Server 使用的证书类型
vCenter Server 中包含多种证书,用于保障组件间的验证和加密通信。通常,vSphere 通过 VMware Certificate Authority (VMCA) 自动置备证书,证书存储在 VMware Endpoint Certificate Store (VECS) 中。vCenter 支持自签名证书来替换 VMCA 置备的 SSL 证书,但这会显著增加维护复杂度,因此除非有严格的内控要求,建议使用 VMCA 以简化管理。
vCenter Server 证书类型概览:
证书类型 | VECS 存储库 | 备注 |
---|---|---|
根证书 | TRUSTED_ROOTS | 包含所有信任的根证书。 |
计算机 SSL 证书 | MACHINE_SSL_CERT | 用于计算机的安全 SSL 连接。 |
解决方案用户证书 | machine、vpxd、vpxd-extension 等 | 用于 SAML 令牌交换,与 SSL 证书无关。 |
STS 证书 | STS | 安全令牌服务签名证书(更新STS证书会比较特别和麻烦) |
可以通过以下命令具体查看每类证书的过期时间
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
vCenter各版本证书有效期
安装 vCenter Server 后,VMCA 默认置备证书,不同类型证书的有效期各异。常见版本证书的有效期如下所示:
vCenter Server 版本 | 根证书 | 计算机 SSL 证书 | 解决方案用户证书 | STS 证书 |
---|---|---|---|---|
6.5 – 6.7 U3F | 10 年 | 10 年 | 10 年 | 10 年 |
6.5 U2 – 6.7 U3G | 10 年 | 2 年 | 2 年 | 10 年 |
7.0 及更高 | 10 年 | 2 年 | 10 年(*) | 10 年 |
vCenter证书过期的解决办法
如果还可以进入vCenter的网页管理界面的话,进入vCenter的证书管理界面:
- 登录 vCenter Server 用户界面。
- 导航至 菜单 > 管理 > 证书 > 证书管理。
- 在 Machine SSL 证书 部分,选择 操作 下拉菜单,以更新或生成 SSL 证书。
如果已经过期,旧只能通过VCSA自带的vSphere Certificate Manager作证书更新
用vSphere Certificate Manager更新过期的证书
在 vCenter Server Appliance 上,通过以下命令启动证书管理器:
/usr/lib/vmware-vmca/bin/certificate-manager
运行此命令后,界面将显示八个选项:
各选项的详细说明
选项编号 | 说明 | 需要的信息 |
---|---|---|
1 | 使用自定义 CA 证书替换 Machine SSL 证书。此选项提供生成 Machine SSL 证书的证书签名请求(CSR)和密钥的子选项。 | – administrator@vsphere.local 密码– 自定义 Machine SSL 证书和密钥路径 – 自定义 VMCA 根证书路径 |
2 | 使用自定义 CA 签名证书替换 VMCA 根证书,并替换所有证书。此选项提供生成 VMCA 根签名证书的 CSR 和密钥的子选项。 | – administrator@vsphere.local 密码– 配置 /usr/lib/vmware-vmca/share/config/certool.cfg 文件(用于 VMCA 生成证书)– 根签名证书和根签名密钥 – 可选:是否需要用自定义 CA 替换所有解决方案用户证书? – 是:提供所有解决方案用户(vpxd、vpxd-extension、vsphere-webclient、machine)的自定义证书和密钥路径 – 否:VMCA 使用自定义 CA 签名证书生成新的解决方案用户证书/密钥 |
3 | 使用 VMCA 生成的证书替换 Machine SSL 证书 | – administrator@vsphere.local 密码– 配置 certool.cfg 文件 |
4 | 重新生成新的默认 VMCA 根证书,并替换所有证书 | – administrator@vsphere.local 密码– 配置 certool.cfg 文件 |
5 | 使用自定义 CA 证书替换解决方案用户证书 | – administrator@vsphere.local 密码– 自定义根 CA 证书路径 – vpxd 解决方案用户的自定义证书和密钥路径 – vpxd-extension 解决方案用户的自定义证书和密钥路径 – vSphere-webclient 解决方案用户的自定义证书和密钥路径 – machine 解决方案用户的自定义证书和密钥路径 – 若 vCenter Server 版本为 7.0,还需提供 hvc 和 wcp 解决方案用户的自定义证书和密钥路径 |
6 | 使用 VMCA 生成的证书替换解决方案用户证书 | – administrator@vsphere.local 密码 |
7 | 通过重新发布旧证书撤销上次执行的操作 | – administrator@vsphere.local 密码 |
8 | 重置所有证书 | – administrator@vsphere.local 密码– 配置 certool.cfg 文件 |
通过上述步骤,你就可以根据需要更新、生成或替换 vCenter 的 SSL 证书,以确保系统的安全性和证书的有效性。
关于STS证书更新
STS证书是个特例。
STS证书在vSphere 客户端中并不会总是发出过期警告(特别是在早期 vSphere 版本)
STS 证书是需要通过 CLI 命令行来检查状态并执行更新。
详情请见:
主要是要用VMware官方做好的脚本去更新STS证书:
https://knowledge.broadcom.com/external/article?legacyId=76719 (文章名字”Signing certificate is not valid” error in vCenter Server Appliance)
更新STS证书的具体步骤:
- 同样去到上面的KB文章,拉到文章底部,下载fixsts.sh脚本
- 上传fixsts.sh脚本到VCSA的/tmp目录
- 这次是shell脚本,所以要添加执行权限#chmod +x fixsts.sh
- 执行脚本#./fixsts.sh,输入administrator@vsphere.local密码
- 执行完毕后,会见到类似下面的提示
成功更新STS证书后,按照提示需要重启VCSA全部服务:
- #service-control –stop –all && service-control –start –all
大概等10-20分钟全部服务重启后,重新刷新浏览器就可以成功登录vCenter了
最后总结一下
管理 vCenter Server 的证书有效期至关重要,尤其是在确保系统安全性和避免服务中断方面。通过熟悉 vCenter 证书类型和过期时间,并使用 vSphere Certificate Manager 或 CLI 命令来更新或替换证书,可以显著简化 vCenter 证书管理。若 vCenter 证书过期,及时采取解决方法,如更新 Machine SSL 证书或替换 STS 证书,以确保 vCenter Server 的稳定运行。掌握 vCenter Server 证书过期后的更新方法、vSphere 证书类型的管理和维护技巧,将为 VMware 用户在日常操作中提供极大的便利。