V2升级V3,掉电重启后,SSL证书失效,反复重启

问题描述

BMC 3.xx.xx.xx版本升级openubmc指导 - 交流互助区 - openUBMC 论坛
参考V2升级V3指导,升级后导入SSL证书可访问Web,掉电重启后无法访问Web

尝试导入证书报错,反复重启,telnet和ssh能连接,查询版本报错,证书证书报错,升级固件报错

多次重启后会自动恢复V2版本,再次升级V3无法导入证书,依然反复重启

尝试过的解决方案

bmc版本查询失败,导入证书失败, 更新bmc失败,反复重启 - 交流互助区 - openUBMC 论坛

openUBMC300 V3问题定位分享 | 文档中心 | openUBMC

尝试删除数据库恢复环境,依然反复重启,会自动恢复V2版本

# 将数据库备份,并重启服务
mv /data/trust/persistence/per_poweroff.db /data/trust/persistence/per_poweroff.db.bak

# 可以重启持久化服务,或者重启所有服务
killall skynet

日志信息

framework.log.txt (625.6 KB)

app.log.txt (1.4 MB)

答案内容由AI生成,仅供参考:

二、基于上下文的解决方案建议

1. 确保证书兼容性

  • 使用OpenSSL 3.x重新生成SSL证书:社区版本要求证书由OpenSSL 3.x制作,请使用正确版本生成 .p12.pfx 文件,并确保包含私钥和完整证书链。
    参考:Document Chunk #1(topic/938 最佳答案)、#6
  • 验证证书路径:通过SSH登录后,检查 /data/trust/cert/ssl/SSL_1.crt 是否存在,以及数据库内证书记录是否完整。若缺失,需重新导入证书。
    参考:Search Result #8(V3问题定位分享)

2. 正确执行第一次V2→V3升级

  • 修改manifest.yml:在打包时,将 manifest.ymlaccount.option 设置为 manufacture: true,确保升级过程中账户和签名验证正常。
    参考:Document Chunk #4(topic/5264 最佳答案)
  • 使用中间版本过渡(如无法直升):对于不支持PSS签名的老旧V2版本,需先升级到支持双签名的中间版本,再升级到社区V3。
    参考:Document Chunk #4(“烧片包的V2无法升级V3”部分)
  • 检查根证书是否缺失:若升级日志显示“无根证书”或“签名校验失败”,请先通过镜像倒换切换到正常分区,或联系PAE获取支持的版本。
    参考:Document Chunk #4(“V2无法升级V3”部分)

3. 处理反复重启与回滚

  • 禁用自动回滚,手动干预:升级完成后,若系统自动回滚,可尝试通过 ipmcset -d upgrade -v <image> 手动指定升级分区,并设置重启标志为手动重启,待确认版本固化后再上电。
    参考:Search Result #2(Upgrade Component 协议说明)
  • 清理异常KSF文件:在恢复出厂设置后,需删除 /data/backup/ksf/datatocheck_bak.dat/data/trust/ksf/datatocheck_bak.dat,确保密钥重新加载。
    参考:Document Chunk #5(解决方案)
  • 检查硬件时间:系统时间若超出证书有效期,将导致证书失效并可能引起BMC异常重启。请通过 date 命令确认时间正确。
    参考:Search Result #3(手动修改时间使证书过期)

4. 进一步定位

  • 收集一键诊断日志:执行 ipmcget -d diag 获取完整日志,重点检查 app.log 中关于 p12 parse failsignature verify failrollback 等关键词。
    参考:Document Chunk #1(日志分析)
  • 检查组件启动状态:通过SSH查看 web_backendtrustnginx 等服务是否正常运行,如有异常可使用 systemctl restart <service> 尝试恢复。
    参考:Document Chunk #3(JianCong_Huo 回复)

三、总结

您遇到的问题核心是升级与证书的双重兼容性故障:V2→V3升级因签名或版本问题失败,导致系统回滚;而证书失效又源于OpenSSL版本不匹配或密钥路径错误。建议严格按照V2→V3第一次升级指导操作,并确保证书使用OpenSSL 3.x生成。若问题持续,请提供完整 ipmcget -d diag 日志至论坛或联系社区PAE(如 pae)获取进一步支持。

以上分析均基于您提供的上下文知识库,未引入外部信息。

点击此处查看详细分析解答

根据您提供的描述和上下文知识库,您所遇到的“V2升级V3后掉电重启SSL证书失效、反复重启并自动回退V2”是一系列相互关联的问题。以下基于知识库中的已知信息进行综合分析,并给出可能的解决思路。


一、问题根因分析

1. SSL证书失效或导入失败

  • OpenSSL版本不匹配:社区版本(openUBMC V3)的加密库已升级至OpenSSL 3.x,若您使用的证书由OpenSSL 1.x生成,导入时会报错 p12 parse fail, error:0308010C:digital envelope routines::unsupported,导致证书无法加载,Web无法登录。
    参考:Document Chunk #1(topic/938)、#6
  • 密钥不匹配:当采用“不保留配置升级”或恢复出厂设置时,备份文件路径可能变更(如 ksf 文件路径差异),导致恢复点中的密钥与证书密文不匹配,证书解密失败。此类问题在自签名版本中尤为常见。
    参考:Document Chunk #5(自签名升级分析)
  • 组件启动时序:掉电重启后,web_backendnsm 组件可能未正常启动,或 nginx 服务未被正确拉起,导致证书虽存在但无法生效。
    参考:Document Chunk #3(topic/7024 回复)

2. 升级后反复重启并回退V2

  • 签名校验失败:V2旧版本可能不支持新固件的签名算法(如仅支持PKCS而不支持PSS),升级包无法通过验证,触发自动回滚。日志中可能会看到“根证书缺失”或“签名校验失败”的错误。
    参考:Document Chunk #4(固件升级机制及常见问题)
  • 升级包无效或版本不匹配:第一次从V2升级到V3时,需按指导修改 manifest.yml 开启 manufacture 模式,否则升级包可能不适用于当前硬件环境,导致升级中断后系统自动切回备用分区(V2)。
    参考:Document Chunk #4(topic/5264)
  • 升级后系统不稳定:升级过程中若某个子系统(如 hardwaretrust)内存分配失败或反复重启,可能引起BMC整体异常,最终触发看门狗复位并回滚。
    参考:Search Result #5(共享内存分配失败案例)

3. 反复重启与恢复V2的联动

  • 自动回滚机制:BMC固件升级失败或启动异常时,系统会自动切换至备用分区(V2),并尝试重新升级。若升级包始终无法通过验证,则会持续回滚,表现为反复重启并最终稳定在V2。
    参考:实体 Upgrade Failure(描述中提及rollback)
  • 数据库清理无效:您尝试删除持久化数据库但未解决问题,说明根因不在用户配置,而是底层签名/证书算法不兼容或升级流程未正确执行。

二、基于上下文的解决方案建议

1. 确保证书兼容性

  • 使用OpenSSL 3.x重新生成SSL证书:社区版本要求证书由OpenSSL 3.x制作,请使用正确版本生成 .p12.pfx 文件,并确保包含私钥和完整证书链。
    参考:Document Chunk #1(topic/938 最佳答案)、#6
  • 验证证书路径:通过SSH登录后,检查 /data/trust/cert/ssl/SSL_1.crt 是否存在,以及数据库内证书记录是否完整。若缺失,需重新导入证书。
    参考:Search Result #8(V3问题定位分享)

2. 正确执行第一次V2→V3升级

  • 修改manifest.yml:在打包时,将 manifest.ymlaccount.option 设置为 manufacture: true,确保升级过程中账户和签名验证正常。
    参考:Document Chunk #4(topic/5264 最佳答案)
  • 使用中间版本过渡(如无法直升):对于不支持PSS签名的老旧V2版本,需先升级到支持双签名的中间版本,再升级到社区V3。
    参考:Document Chunk #4(“烧片包的V2无法升级V3”部分)
  • 检查根证书是否缺失:若升级日志显示“无根证书”或“签名校验失败”,请先通过镜像倒换切换到正常分区,或联系PAE获取支持的版本。
    参考:Document Chunk #4(“V2无法升级V3”部分)

3. 处理反复重启与回滚

  • 禁用自动回滚,手动干预:升级完成后,若系统自动回滚,可尝试通过 ipmcset -d upgrade -v <image> 手动指定升级分区,并设置重启标志为手动重启,待确认版本固化后再上电。
    参考:Search Result #2(Upgrade Component 协议说明)
  • 清理异常KSF文件:在恢复出厂设置后,需删除 /data/backup/ksf/datatocheck_bak.dat/data/trust/ksf/datatocheck_bak.dat,确保密钥重新加载。
    参考:Document Chunk #5(解决方案)
  • 检查硬件时间:系统时间若超出证书有效期,将导致证书失效并可能引起BMC异常重启。请通过 date 命令确认时间正确。
    参考:Search Result #3(手动修改时间使证书过期)

4. 进一步定位

  • 收集一键诊断日志:执行 ipmcget -d diag 获取完整日志,重点检查 app.log 中关于 p12 parse failsignature verify failrollback 等关键词。
    参考:Document Chunk #1(日志分析)
  • 检查组件启动状态:通过SSH查看 web_backendtrustnginx 等服务是否正常运行,如有异常可使用 systemctl restart <service> 尝试恢复。
    参考:Document Chunk #3(JianCong_Huo 回复)

三、总结

您遇到的问题核心是升级与证书的双重兼容性故障:V2→V3升级因签名或版本问题失败,导致系统回滚;而证书失效又源于OpenSSL版本不匹配或密钥路径错误。建议严格按照V2→V3第一次升级指导操作,并确保证书使用OpenSSL 3.x生成。若问题持续,请提供完整 ipmcget -d diag 日志至论坛或联系社区PAE(如 pae)获取进一步支持。

以上分析均基于您提供的上下文知识库,未引入外部信息。

你这个是升级完openubmc版本后,重启了几次就自动回退回了V2版本是吗?

如果是这样,一般是要确定app和framework在重启前的报错,查看原因

是的,自动回退V2,且可用分区版本显示null,目前升级了5块,有2块板子出现该问题

这是一个概率问题?其他的板子能升级到openUBMC?

能升级上去的板子和不能升级的板子,操作上有什么区别么?

使用2512SP1自签名包,已验证该包在V3机器上可成功升级

再次尝试以相同操作升级两块板子,出现一块成功,一块反复重启,应该是概率问题