VCSA证书过期时当存在第三方的插件或解决方案证书更新报错问题处理

发布时间 2023-09-18 10:28:31作者: 时光2020

VCSA证书过期时当存在第三方的解决方案证书更新报错问题处理  

测试环境存在Zerto时已经通过验证

Task Steps:

  • SSH to PSC
  • Run the Certificate Manager tool from /usr/lib/vmware-vmca/bin/certificate-manager
  • Select to Replace Machine SSL Certificate with Custom Signed Certificate
  • Generate CSR and key files
  • SCP the CSR from the PSC/VCSA
  • Create certificate from CSR
  • Create chain certificates for root certificate and Machine SSL certificate
  • SCP back to PSC/VCSA
  • Replace with the Certificate Manager tool

任务步骤:

  • 通过短信连接到 PSC
  • 从中运行证书管理器工具/usr/lib/vmware-vmca/bin/certificate-manager
  • 选择将计算机 SSL 证书替换为自定义签名证书
  • 生成 CSR 和密钥文件
  • SCP 来自 PSC/VCSA 的 CSR
  • 从 CSR 创建证书
  • 为根证书和计算机 SSL 证书创建链证书
  • SCP 回到 PSC/VCSA
  • 替换为证书管理器工具

在替换 PSC 上的证书期间(如果您仍在使用外部 PSC,则需要在 VCSA 之前完成),我遇到了错误,更换证书失败。

当 VMCA 查找所有服务以验证哪些服务需要使用新的证书指纹进行更新时,我收到了错误。特别是,VMCA遇到了它不喜欢的第三方插件。以下是它向我展示的一些内容:

Get service c2232449-f7cd-4fd5-ac80-dd99a0a51ee3
Update service c2232449-f7cd-4fd5-ac80-dd99a0a51ee3; spec: /tmp/svcspec_z_br_7_1
Get service 3b6f4b0a-5b54-4648-a308-51ac4fbc8459
Update service 3b6f4b0a-5b54-4648-a308-51ac4fbc8459; spec: /tmp/svcspec_cgtwn52b
Get service 2e46cfb0-8999-47e0-9891-585d5d4e0c6d
Don't update service 2e46cfb0-8999-47e0-9891-585d5d4e0c6d
Get service 32457dce-cad3-4f3f-a360-9028d2f80031
Update service 32457dce-cad3-4f3f-a360-9028d2f80031; spec: /tmp/svcspec_op6l724r
Get service a93d658b-d886-46bb-8950-06b3fbc04df4
Don't update service a93d658b-d886-46bb-8950-06b3fbc04df4
Get service a7310628-de94-42c8-b3b0-6d1c0192dddf_com.nimblestorage.hi.h5
Status : 0% Completed [Operation failed, performing automatic rollback]

Error while replacing Machine SSL Cert, please see /var/log/vmware/certificate-manager.log for more information.
Performing rollback of Machine SSL Cert...
Get site nameus : 0% Completed [Rollback Machine SSL Cert...]

紧随其后的是查找要更新的服务和另一个失败的相同过程。

Get service a93d658b-d886-46bb-8950-06b3fbc04df4
Don't update service a93d658b-d886-46bb-8950-06b3fbc04df4
Get service 32457dce-cad3-4f3f-a360-9028d2f80031
Don't update service 32457dce-cad3-4f3f-a360-9028d2f80031
Get service a7310628-de94-42c8-b3b0-6d1c0192dddf_com.nimblestorage.hi.h5

Error while reverting certificate for store : MACHINE_SSL_CERT
Rollback Status : 0% Completed [Rollback operation failed]

Error while performing rollback operation, please try Reset operation...

please see /var/log/vmware/certificate-manager.log for more information.

查看证书管理器.log文件,我发现与证书管理器发出的命令相关的故障。

2019-06-28T16:04:11.891Z INFO certificate-manager lstool command currently being executed is : ['/usr/java/jre-vmware/bin/java', '-Djava.security.properties=/etc/vmware/java/vmware-override-java.security', '-cp', '/usr/lib/vmware-sca/lib/lookup-client.jar:/usr/lib/vmware-sca/lib/*:/usr/lib/vmware/common-jars/*', '-Dlog4j.configuration=tool-log4j.properties', 'com.vmware.vim.lookup.client.tool.LsTool', 'get', '--no-check-cert', '--url', 'https://psc.mueller-tech.local/lookupservice/sdk', '--id', 'a7310628-de94-42c8-b3b0-6d1c0192dddf_com.nimblestorage.hi.h5', '--as-spec']
2019-06-28T16:04:13.748Z ERROR certificate-manager 'lstool get' failed: 1
2019-06-28T16:04:13.748Z INFO certificate-manager Error while reverting certificate for store : MACHINE_SSL_CERT
2019-06-28T16:04:13.749Z ERROR certificate-manager Error while performing rollback operation, please try Reset operation...
2019-06-28T16:04:13.749Z ERROR certificate-manager please see /var/log/vmware/certificate-manager.log for more information.

解决方案:

我以前遇到过这个!在遥远的过去,我曾向 VMware 支持部门就此问题(使用不同的插件)开过一张票证。证书管理器在查看要更新的服务列表时,发现了插件的问题。在这种情况下,它恰好是证书管理器不满意的HTML5客户端的Nimble Storage插件。

为了解决此问题,我需要通过托管对象浏览器取消注册插件。威廉·林(William Lam),他写了这篇关于如何做到这一点的伟大文章。我过去也这样做过,但很快就把威廉的文章作为复习。

更新:VMware似乎在我遇到它一段时间后发布了一篇关于此的知识库文章

新问题:

正如我前面提到的,手头的任务是替换已经过期的证书。由于证书过期,我无法登录到 vSphere Web Client 或 vSphere Client (HTML 5 客户端)。除此之外,vRealize Automation和Horizon服务也由于这次事故而离线。

您知道证书过期后还有什么不能登录吗?托管对象浏览器。 这一事实使得取消注册扩展特别困难。这是一个经典的先有鸡还是先有蛋的场景。若要通过 MOB 取消注册扩展,我需要替换证书。要替换证书,我需要取消注册有问题的扩展...

重要提示:我分享以下解决方案,以提醒自己下次使用,并帮助遇到本文的任何人。我无法为以下描述的操作提供支持。在您的环境中继续执行风险,或由 VMware 支持部门指导。

新的解决方案:

我最终与VMware支持部门合作,他们让我对证书管理器使用的脚本进行了一些更改。使用以下步骤执行此操作:

  • 通过 SSH 连接到 PSC 或 VCSA
  • 登录到 bash 外壳
  • 导航到 /usr/lib/vmware/site-packages/cis (cd /usr/lib/vmware/site-packages/cis)
  • 复制文件 certificateManagerHelper.py (cp certificateManagerHelper.py certificateManagerHelper.py.bak)
  • 编辑 certificateManagerHelper.py (vi certificateManagerHelper.py)
  • 搜索以下块:
    if(rc != 0):
    logging.error("'lstool get' failed: {}".format(rc))
    raise Exception("'lstool get' failed: %d" % rc)
  • 通过替换第二行并注释掉第三行来编辑块,如下所示:
    if(rc != 0):
    rc = 0;
    #raise Exception("'lstool get' failed: %d" % rc)
  • 保存文件

这项工作有效地告诉证书管理器 - 当您查看服务并收到不等于零的返回代码时 - 将该返回代码设置为零并继续。

完成此编辑后,我能够成功更新我的计算机SSL证书,而不会出现任何进一步的问题。这是一个非常有用的提示,我想一定要记住。这比取消注册此操作的插件的影响要小得多。

我希望有人觉得这有帮助!

原文 https://mueller-tech.com/2019/06/28/replacing-expired-certificates/

 

使用自签名证书替换步骤参考

VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 猫先生的日常点滴 (mr-mao.cn)