使用命令行验证和解决过期的 vCenter Server 证书
search cancel

使用命令行验证和解决过期的 vCenter Server 证书

book

Article ID: 322009

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

本文提供了使用命令行界面在 vCenter Server 中验证证书到期日期和解决过期证书问题的步骤。

Symptoms:
免责声明:本文是 Verify and resolve expired vCenter Server certificates using command line 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

 
  • vCenter 界面中显示警告,显示证书即将过期。
  • 您会看到以下错误:
503 service not available...endpoint

Environment

VMware vCenter Server 8.0
VMware vCenter Server Appliance 6.5.x
VMware vCenter Server 6.x
VMware vCenter Server Appliance 6.7.x
VMware vCenter Server 7.0.x

Cause

一个或多个所需证书已过期或即将过期时,将会出现此问题。

Resolution

验证证书过期日期

  1. 检查单点登录令牌签名 (STS) 证书,请参见 在 vCenter Server 上检查过期的 STS 证书
  2. 运行以下命令以查看环境证书的状态":
  • 在 vCenter Appliance 中运行以下命令:

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;

  • 在 Windows vCenter Server 中运行:

$VCInstallHome = [System.Environment]::ExpandEnvironmentVariables("%VMWARE_CIS_HOME%");foreach ($STORE in &"$VCInstallHome\vmafdd\vecs-cli" store list){Write-host STORE: $STORE;&"$VCInstallHome\vmafdd\vecs-cli" entry list --store $STORE --text | findstr /C:"Alias" /C:"Not After"}
 

将出现类似于以下内容的输出:

查找过期证书的证书列表
  1. 确保日期是将来日期


解决过期证书

注意: 
  • 备份或创建虚拟机快照,然后再继续。
  • 建议同时关闭所有连接的、具有嵌入式 PSC 的外部 Platform Services Controllers/vCenter 的电源,并生成每个链接节点虚拟机的快照。


自定义证书

如果受信任的根证书或 SSL 证书已过期,建议系统使用默认 VMware Certificate Authority 证书重新运行,然后重新应用自定义证书,请参见 使用自定义证书颁发机构签名证书复制 vSphere 6.x /7.x 计算机 SSL 证书


STS 证书

对于具有嵌入式 PSC 或外部 PSC 的 vCenter,请仅在每个链接节点系统的一个节点上执行以下操作:"Signing certificate is not valid" error in VCSA 6.5.x/6.7.x and vCenter Server 7.0.x


受信任的根证书

  • 对于具有嵌入式 PSC 或外部 PSC 的 vCenter,在链接节点系统中执行以下操作一次:根据 How to use vSphere Certificate Manager to Replace SSL Certificates运行 certificate-manager,并使用选项 4 生成新的根证书并替换所有证书。
  • 在链接系统中的所有剩余 vCenter 和 PSC 上,执行以下操作:
  1. 运行 certificate-manager 选项 3 以替换计算机 SSL 证书
  2. 运行 certificate-manager 选项 6 以替换解决方案用户证书


计算机 SSL 证书

在具有此过期证书的每个节点(vCenter、具有嵌入式 PSC 或外部 PSC 的 vCenter)上,运行 certificate-manager 选项 3 以替换 SSL 证书。


解决方案用户证书

如果其中一个或多个已过期,则在每个节点(具有嵌入式 PSC 或外部 PSC 的 vCenter)上,运行 certificate-manager 选项 6 以替换解决方案用户证书。

注意:如果 vCenter 的 Certificate Manager 选项 3 或 6 失败,您可以尝试使用选项 8 重置所有证书。 


Additional Information

Manually reviewing certificates in VMware Endpoint Certificate Store for vSphere 6.x
"ERROR certificate-manager 'lstool get' failed: 1" during Certificate Replacement on vCenter Server 6.x
"ERROR certificate-manager 'lstool get-site-id' failed: 1", Certificate Replacement with Custom Certificate Fails on vCenter Server 6.x
Using the 'lsdoctor' Tool
Determining expired SSL certificates in vCenter Server and ESXi 6.x and 7.0.x
VMware Docs: vSphere Security Certificates

Use Custom Certificates with vSphere
"503 Service Unavailable" error on the vSphere Web Client when logging in or accessing the vCenter Server

Impact/Risks:
  • 如果要替换的证书存在问题,则 vCenter Server 可能停止工作。
  • VMDIR LDAP 目录也可能无法正确更新,因此可能需要修复,请参见 使用"lsdoctor"工具
  • 如果可信根中具有未使用的已过期证书,这将触发证书状态警报。
  • 如果 BACKUP_STORES 中有过期的证书,将触发证书状态警报。
  • 如果存在已过期证书(如 STS、计算机 SSL 或任何解决方案用户),则 vCenter 将无法启动服务,因为服务的依赖关系。