VMWARE平台STS证书过期

1.VMWARE平台STS(安全令牌服务)证书过期

1.1 问题描述

2022年6月16日,项目组在执行远程巡检过程中,发现VMWARE平台无法登陆。页面报错如下图:
在这里插入图片描述
在这里插入图片描述

1.2 部署方式及版本

架构:vCenter Server with an external Platform Services Controller(vcenter+外部PSC)
版本:VMware vCenter Server Appliance 6.5.0.32000(vCenter Server Appliance 6.5 U3f)

1.3 原因分析

  1. vmware知识库查询报错信息,指向了STS证书过期。
    STS签名证书的生命周期是2年,安全令牌服务(STS)证书过期时。这将导致内部服务和解决方案用户无法获得有效的令牌,从而无法按预期工作

  2. 方法一,下载官方的检测脚本checksts.py,上传到PSC服务端,确认是否存在证书过期问题。

    详见官方KB,https://kb.vmware.com/s/article/79248?lang=en_us
    注意:只有在英文界面下才能看到checksts.py附件

    在这里插入图片描述

  3. 方法二适用于证书处于有效期内的环境,
    登陆https://vcenter_server_ip_address_or_fqdn/vsphere-client
    选择Administration > Single Sign-On > Configuration > Certificates > STS Signing.
    在这里插入图片描述

1.4 影响范围

  • 全新安装PSC/vCenter Server 6.5,U2或更高版本开始(仅为6.5)。
  • 全新安装PSC/vCenter Server 6.5 U2及以上6.5版本,并升级到6.7和7.0以上版本。
  • PSC或vCenter Server安装完成后,使用certool工具替换STS签名证书。
  • 已将STS签名证书替换为自定义证书(内部/外部CA签名)。

1.5 处理过程

1.5.1 STS证书未过期续期

  1. 对vCenter及PSC虚拟机执行一次无内存快照
  2. 6.5版本及以下的操作方法是:https://vc-ip-address/psc,然后选择:证书->证书管理->选择证书->续订,计算机证书、解决方案用户证书,可信根证书全部续订一次。
    在这里插入图片描述
  3. 6.7版本的操作方法是:主页->系统管理->证书->证书管理->选择证书->操 作->续订

1.5.2 STS证书已过期续期

  1. 从官方KB(https://kb.vmware.com/s/article/76719)下载fixsts.sh脚本,并上传到受影响的PSC(外部PSC架构)或嵌入PSC的vCenter服务器的/tmp目录。如果SCP客户端上传到vCenter的连接被拒绝,请使用SSH连接到vCenter执行: chsh -s /bin/bash

  2. 对vCenter及PSC虚拟机执行一次无内存快照

  3. 执行chmod +x fixsts.sh为脚本添加执行权限并执行

  4. 使用以下命令重启SSO域中vCenter和PSC上的所有服务
    service-control --stop --all
    service-control --start --all

    注意:如果有其他过期的证书,如机器SSL或解决方案用户,则重启服务仍然失败。继续下一步以识别和替换其他过期证书。

1.5.3 检查并替换其他过期的证书

  1. 执行下述命令检查其他证书的有效期
    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及PSC都需要检查。

    官方KB:https://kb.vmware.com/s/article/2015600?lang=zh_CN

  2. 过期证书更新的先决条件

  • 在使用证书管理器重新生成证书之前,请确保STS证书是有效的。
  • 如果STS过期或损坏,证书再生将失败,因为没有有效令牌的服务依赖项启动失败。
  • 该任务将VMCA根证书替换为新的自签名证书,然后将SSL和解决方案用户证书替换为VMCA颁发的新证书。
  • 如果运行的是外部PSC,则需要在外部vCenter Server上运行证书管理器。并执行选项3, 将机器SSL证书替换为VMCA证书;执行选项6,将解决方案的用户证书替换为VMCA证书。
  1. 过期证书更新(https://kb.vmware.com/s/article/2112283),先更新PSC端
    1) 执行指令/usr/lib/vmware-vmca/bin/certificate-manager,选择选项4重新生成新的VMCA根证书并替换所有证书
    在这里插入图片描述
    2) 根据提示输入 [email protected]的密码
    3) 如果是首次生成VMCA证书,需要配置“certool.cfg”文件。在后续任务中,可以重用这些值。
    Please configure certool.cfg file with proper values before proceeding to next step.
    Press Enter key to skip optional parameters or use Default value.
    Enter proper value for ‘Country’ [Default value : US] : 回车
    Enter proper value for ‘Name’ [Default value : CA] : 回车
    Enter proper value for ‘Organization’ [Default value : VMware] : 回车
    Enter proper value for ‘OrgUnit’ [Default value : VMware Engineering] : 回车
    Enter proper value for ‘State’ [Default value : California] : 回车
    Enter proper value for ‘Locality’ [Default value : Palo Alto] : 回车
    Enter proper value for ‘IPAddress’ [optional] :PSC_IP
    Enter proper value for ‘Email’ [Default value : [email protected]] : 回车
    Enter proper value for ‘Hostname’ [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : PSC_IP
    Enter proper value for VMCA ‘Name’:PSC_IP
    4) 确认请求输入Yes (Y)继续
    You are going to regenerate Root Certificate and all other certificates using VMCA
    Continue operation : Option[Y/N] ? : Y
  2. 过期证书更新,再更新vCenter端
    1) 执行指令/usr/lib/vmware-vmca/bin/certificate-manager,依次选择3和6,替换SSL证书及解决方案用户证书
    Please configure certool.cfg file with proper values before proceeding to next step.
    Press Enter key to skip optional parameters or use Default value.
    Enter proper value for ‘Country’ [Default value : US] : 回车
    Enter proper value for ‘Name’ [Default value : CA] : 回车
    Enter proper value for ‘Organization’ [Default value : VMware] : 回车
    Enter proper value for ‘OrgUnit’ [Default value : VMware Engineering] : 回车
    Enter proper value for ‘State’ [Default value : California] : 回车
    Enter proper value for ‘Locality’ [Default value : Palo Alto] : 回车
    Enter proper value for ‘IPAddress’ [optional] :vCenter_IP
    Enter proper value for ‘Email’ [Default value : [email protected]] : 回车
    Enter proper value for ‘Hostname’ [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : vCenter_IP
    Enter proper value for VMCA ‘Name’:PSC_IP
  3. 使用以下命令重启SSO域中vCenter和PSC上的所有服务
    service-control --stop --all
    service-control --start --all

1.6 故障总结

组织团队全面排查VMWARE平台是否在影响范围列表内,如确认存在隐患,进一步核实证书过期时间,并将证书过期时间作为巡检项纳入远程巡检项中。在证书到期前3个月完成证书的更新及续签。

猜你喜欢

转载自blog.csdn.net/weixin_43770382/article/details/125861964
sts