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″ />

  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″ />

  2. 过期证书更新(https://kb.vmware.com/s/article/2112283),先更新PSC端
    1) 执行指令/usr/lib/vmware-vmca/bin/certificate-manager,选择选项4重新生成新的VMCA根证书并替换所有证书

    2) 根据提示输入 administrator@vsphere.local的密码
    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@acme.com] : 回车
    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] ” />1.6 故障总结

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