问题描述
客户的Veeam邮件通知每日备份失败,原因是用户与密码认证失败。鉴于是通过VMware vCenter实施虚拟化基盘整体备份的,那么VMware vCenter是否出现密码变更?
通过远程检查发现情况如下:
- VMware vCenter Web界面出现异常信息
503 Service Unavailable (Failed to connect to endpoint: [class Vmacore::Http::NamedPipeServiceSpec:0x0000000c072eff60] _serverNamespace = / action = Allow _pipeName =\\.\pipe\vmware-vpxd-webserver-pipe)
-
检查VMware vCenter服务状态是正常的
-
检查vpxd服务状态
cd C:\Program Files\VMware\vCenter Server\bin
service-control --status --all
日志输出:
从日志发现,有许多的服务处于Stop状态未正常启动的。
- 检查vpxd日志
C:\ProgramData\VMware\vCenterServer\logs\vpxd-svcs\vpxd-svcs.log
日志输出:
ERROR com.vmware.vim.sso.client.impl.SecurityTokenServiceImpl$RequestResponseProcessor o pId=] Server rejected the provided time range. Cause:ns0:InvalidTimeRange: The token authority rejected an issue request for TimePeriod [startTime= , endTime= ]
问题分析
通过VMware工程师反馈,此问题是由于安全令牌服务 (STS) 签名证书有效期失效引起的。安全令牌服务 (STS) 签名证书的有效期检查方法参考如下:
-
vCenter Server Web可以登录情况
※ 无法从 HTML5 客户端查看 STS 证书 -
vCenter Server Web不可以登录情况
通过脚本方式检查:
https://kb.vmware.com/s/article/79248?lang=zh_CN
“%VMWARE_PYTHON_BIN%” checksts.py
如果 vCenter Server 部署为版本 6.5 Update 2(GA Date : 2018 年 5 ⽉ 3 号) 或更高版本,则安全令牌服务 (STS) 签名证书的有效期可能为两年。vCenter Server 也不会在升级时刷新 STS 证书,这就会导致经常会忽略STS证书有效期。
VMware官方建议:如果证书设置为 6 个月内过期,VMware 建议替换该证书。如果 6 个月后到期,请安排在相应的时间替换证书。
重要信息:STS 证书过期时不会触发证书到期警报。本知识库文章中介绍了可以确定 STS 证书到期日期的唯一方法。VMware 建议您偶尔检查 STS 证书以确保其未过期。
解决方案
官方提供两种不同环境的解决方案:
我们如下以Windows模式的vCenterServer为例子:
-
通过KB下载fixsts.ps1与vmware-identity-sso-config67u3g.jar到
C:\Temp
目录 -
执行fixsts.ps1的Powershell脚本
※ VMware vCenter 6.7 Update 3以下版本需要下载vmware-identity-sso-config67u3g.jar
到fixsts.ps1
相同目录。 -
检查STS证书时间
"%VMWARE_PYTHON_BIN%" checksts.py
-
如果仍出现vpxd等服务无法启动,请将vpxd等服务证书也一起更新
如何使用 vSphere Certificate Manager 替换 SSL 证书 (2097936)- 检查其他服务的证书有效期(不管是否到期,更新就对了)
# Powershell命令
$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"}
- 证书有效期更新
"C:\Program Files\VMware\vCenter Server\vmcad\certificate-manager"
选项1 => 针对SSL证书
选项8 => 根证书更新
选项6 => vpxd,vpxd-extension,machine,vsphere-webclient证书更新
参考输出日志:
- 检查vCenter Server服务是否恢复正常
-
证书检查
检查当前vCenter 证书到期时间:
1)6.5 及以下的操作方法是:https:///psc,然后选择:证书 – 证书管理– 选择证书 – 续订
2)6.7 的操作方法是:主页 – 系统管理 – 证书 – 证书管理 – 选择证书 – 操作 – 续订
参考资料
- VMware日志参考:
C:\ProgramData\VMware\vCenterServer\logs\vpxd-svcs\vpxd-svcs.log
C:\ProgramData\VMware\vCenterServer\logs\vmca\certificate-manager.log