时光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)

How to regenerate vSphere 6.x, 7.x, and 8.0 certificates using self-signed VMCA (2112283) (vmware.com)

目的

本文介绍了使用 VMware 证书颁发机构 (VMCA) 中的新自签名证书重新生成 vSphere 6.x、7.x 和 8.0 证书的步骤。

: 此过程可用于从 vCenter Server 证书已过期的情况下快速恢复。

 

分辨率

  • 在使用证书管理器重新生成证书之前,请确保 STS 证书有效。
  • 如果 STS 已过期或损坏的证书重新生成将失败,因为服务依赖项在没有有效令牌的情况下无法启动。
  • 此任务将 VMCA 根证书替换为新的自签名证书,然后将计算机 SSL 和解决方案用户证书替换为 VMCA 颁发的新证书。
  • 如果您运行的是外部平台服务控制器,则需要在外部 vCenter Server 6.x 上运行 vSphere 6.x 证书管理器并执行以下任务:
     
    • 将计算机 SSL 证书替换为 VMCA 证书(选项 3)
    • 将解决方案用户证书替换为 VMCA 证书(选项 6)
注意:如果 STS 证书(签名证书)过期,则执行以下步骤的证书替换将失败并回滚。请按照 vCenter Server 上的 STS 证书过期情况检查知识库文章来验证 STS 证书的有效性,其中包括指向知识库文章的链接,以便在 STS 证书已过期时替换该证书。

替换 STS 证书后,请按照以下步骤替换其他证书。

注: 请先拍摄 vCenter 的快照或备份,然后再继续操作。

要使用新的自签名 VMware 证书颁发机构证书重新生成 vSphere 6.x 证书,请执行以下操作:
  1. 启动 vSphere 6.x 证书管理器。

    对于 vCenter Server 6.x/7.x Appliance:/usr/lib/vmware-vmca/bin/certificate-manager 对于 Windows vCenter Server 6.x:C:\Program Files\VMware\vCenter Server\vmcad\certificate-manager

     
  2. 选择选项 4(重新生成新的 VMCA 根证书并替换所有证书)

    : 您还可以选择选项 8(重置所有证书)。这两个选项执行相同的功能。(不同之处在于选项 8 不执行证书的自动回滚)。


    certificate vmware
     
  3. 出现提示时键入 administrator@vsphere.local 密码。
  4. 如果这是首次在此系统上重新生成 VMCA 证书,系统会要求您配置 certool.cfg。在后续任务中,系统会为您提供重用这些值。

    : 这些值用于定义 VMCA 颁发的证书。

    按照 VMCA 的提示输入这些值(请参阅步骤 5 以确认名称/主机名/VMCA):

    请为certool.cfg 文件配置正确的值,然后再继续下一步。
    按 输入 键跳过可选参数或使用默认值。
    为“国家/地区”输入适当的值 [默认值:美国] : (注意:国家/地区的值应仅为 2 个字母)
    为“名称”输入适当的值 [默认值:CA] : 为“组织”输入适当的值 [默认值:VMware] : 为“组织单位”输入适当的值 [默认值:VMware 工程部] : 为“州”输入适当的值 [默认值:加利福尼亚州] : 为“位置”输入适当的值 [默认值 :

    帕洛阿尔托] : 输入正确的值 “IPAddress” [可选] : 为“电子邮件”输入正确的值 [默认值 : email@acme.com] : 输入正确的“主机名” 值 [输入有效的完全限定域名 (FQDN),例如: example.domain.com] : 输入 VMCA “名称”的正确值:


    注意:将从 vCenter Server 6.0 U3、6.5 及更高版本请求此信息,您可以将 vCenter Server 的 FQDN/PNID 用于此字段。它将用作 VMCA 根证书的公用名)

     
  5. 键入 (Y) 以确认请求继续。

    您将使用 VMCA 重新生成根证书和所有其他证书 继续操作 : 选项 [Y/N] ? : Y         注意:名称、主机名和 VMCA
    值应与替换证书的节点的 PNID 匹配。

    PNID 应始终与主机名匹配。要获取 PNID,请运行以下命令:

    适用于 vCenter Server Appliance (VCSA)

    /usr/lib/vmware-vmafd/bin/vmafd-cli get-pnid --server-name localhost

    VMCA 证书

    适用于 Windows vCenter Server

    C:\Program Files\VMware\vCenter Server\vmafdd\“ vmafd-cli.exe get-pnid --server-name localhost
posted on 2023-09-18 10:20  时光2020  阅读(1683)  评论(0编辑  收藏  举报