【证书管理】【SSL证书更新】SSL证书更新失败

// 此模板仅供参考,如果不适用可以修改

问题描述

现在我在验证SSL证书更新功能,但是报错了

报错日志如下:

2026-04-30 10:02:00.590008 security ERROR: cert_update.c(30): [certificate update] file(x509_extn.c), line(1690) msg(Invalid argument )
2026-04-30 10:02:00.680682 general_hardware ERROR: vrd_manager.lua(111): [VrdMgmt] Get bios status 180s, sys_id: 1, ok: nil, obj: nil
2026-04-30 10:02:00.931321 security ERROR: cert_update.c(30): [certificate update] file(pkcs10.c), line(1093) msg(Invalid attribute )
2026-04-30 10:02:00.932111 security ERROR: cert_update.c(30): [certificate update] file(sec_pki_common.c), line(1882) msg(SEC_PKI_checkKeyids:akid and skid mismatch )
2026-04-30 10:02:00.932212 security ERROR: cert_update.c(30): [certificate update] file(sec_pki_retrive_store.c), line(399) msg(SEC_PKI_hdlFailureGetIssuerPos:No issuer found )
2026-04-30 10:02:00.932269 security ERROR: cert_update.c(30): [certificate update] file(sec_pki_retrive_store.c), line(555) msg(SEC_PKI_GetChain_to_TopNode_Cert:No matching certificate chain found )
2026-04-30 10:02:02.284125 security ERROR: ssl_hook.c(288): [certificate update] connect failed err(error:0A000086:SSL routines::certificate verify failed), err_result(18)
2026-04-30 10:02:02.284297 security ERROR: cert_update.c(30): [certificate update] file(ipsi_cmp_http_callback.c), line(481) msg(IPSI_CMP_httpOnErrorReport:Error occurred on application id 4 with request id 1 )
2026-04-30 10:02:02.285120 security ERROR: cert_update.c(30): [certificate update] file(ipsi_cmp_ctximpl_msg.c), line(1760) msg(IPSI_CMP_recvResponseVal:Receiving the response failed )
2026-04-30 10:02:02.285191 security ERROR: cert_update.c(1331): [certificate update] sent pkcs10 request failed, ret(-1).
2026-04-30 10:02:02.285213 security ERROR: cert_update.c(1416): [certificate update] get cert from ca server failed.
2026-04-30 10:02:02.293486 certificate ERROR: certificate_renew.lua(130): [certificate update] prepare new cert failed, ret = -1
2026-04-30 10:02:02.294696 certificate WARNING: init.lua(97): nil:78 > operation_logger.lua:-1 > certificate_renew.lua:145: The certificate update failed.
2026-04-30 10:02:02.295153 certificate ERROR: operation_logger.lua(85): Renew: CertUpdateFailed

这是为什么呀?闭源的看不了为啥报错

环境信息

openUBMC 2512 LTS SP1

重现步骤

  1. [第一步]

  2. [第二步]

  3. [第三步]

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

分析结论

[详细总结您对此问题的分析结论]

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

解决方案

方案一:确保CA证书已正确导入(首要步骤)

  1. 确认CA服务器证书已导入BMC

    • 登录BMC Web界面
    • 进入 用户&安全证书管理CA证书管理
    • 确保用于签署SSL证书的CA根证书(例如openUBMC-Root-CA)已成功导入
    • 如果未导入,请先通过"导入CA证书"功能上传正确的CA证书
  2. 验证证书链完整性

    • 确保导入的CA证书是完整的信任链起点
    • 参考知识库中XCA工具创建openUBMC-Root-CA自签名CA证书的做法

方案二:检查网络与服务器可达性

  1. 验证BMC能访问CA服务器:

    # 在BMC上执行ping测试
    ping 10.1.17.74
    
    # 检查端口连通性
    telnet 10.1.17.74 5443
    
  2. 确认URL路径正确:

    • 服务器地址:10.1.17.74
    • 端口:5443
    • 路径:/api/csr/sign/pem(需确认CA服务实际监听路径)

方案三:检查证书主题配置

  • 在"证书主题"配置中:
    • 国家(C) 已正确设置为 CN
    • 常用名(CN) 设置为 Server
  • 建议补充完整其他字段(省份、城市、公司、部门)以提高兼容性

方案四:时间同步检查

  • 确保BMC系统时间准确
  • 错误的时间会导致证书有效期验证失败
  • 通过如下命令设置时间:
    date -s "2026-04-30 10:00:00"
    

方案五:调试与日志收集

  1. 查看完整日志文件:

    tail -f /var/log/app.log | grep certificate
    
  2. 使用CLI工具辅助诊断:

    • 尝试使用ipmcget/ipmcset命令行工具进行证书操作
    • 参考知识库中提到的ipmcset -t certificate -d import命令模式
点击此处查看详细分析解答

SSL证书更新失败问题分析与解决方案

问题描述

在openUBMC 2512 LTS SP1环境中验证SSL证书自动更新功能时失败。通过Web界面手动触发证书更新操作后,系统报错"操作失败",并记录了大量安全相关的错误日志。BMC无法成功从指定的CA服务器(10.1.17.74:5443)获取新的SSL证书。

关键错误日志分析

根据提供的日志信息,可以识别出多个关键错误:

security ERROR: cert_update.c(30): [certificate update] file(x509_extn.c), line(1690) msg(Invalid argument)
security ERROR: cert_update.c(30): [certificate update] file(pkcs10.c), line(1093) msg(Invalid attribute)
security ERROR: cert_update.c(30): [certificate update] file(sec_pki_common.c), line(1882) msg(SEC_PKI_checkKeyids:akid and skid mismatch)
security ERROR: cert_update.c(30): [certificate update] file(sec_pki_retrive_store.c), line(399) msg(SEC_PKI_hdlFailureGetIssuerPos:No issuer found)
security ERROR: cert_update.c(30): [certificate update] file(sec_pki_retrive_store.c), line(555) msg(SEC_PKI_GetChain_to_TopNode_Cert:No matching certificate chain found)
security ERROR: ssl_hook.c(288): [certificate update] connect failed err(error:0A000086:SSL routines::certificate verify failed), err_result(18)
security ERROR: cert_update.c(1331): [certificate update] sent pkcs10 request failed, ret(-1)
security ERROR: cert_update.c(1416): [certificate update] get cert from ca server failed
certificate ERROR: certificate_renew.lua(130): [certificate update] prepare new cert failed, ret = -1

问题原因分析

1. 证书链验证失败(核心问题)

  • No matching certificate chain foundNo issuer found 明确指出BMC在尝试验证CA服务器的证书时,无法找到能够信任的证书链。
  • certificate verify failed 进一步证实了SSL/TLS握手过程中的证书验证失败。
  • 根本原因:BMC系统中未导入或未正确配置用于验证CA服务器身份的信任根证书(CA证书)

2. 证书标识符不匹配

  • akid and skid mismatch(Authority Key Identifier 和 Subject Key Identifier 不匹配)
  • 这表明BMC生成的证书签名请求(CSR)或现有的证书与CA服务器期望的密钥标识符不一致。

3. PKCS#10请求属性无效

  • Invalid attribute in pkcs10.c 表示生成的证书请求包含CA服务器无法识别或不接受的属性字段。

4. 缺少必要的CA证书

  • 系统缺少作为信任锚点的根CA证书(如知识库中提到的openUBMC-Root-CA),导致无法建立信任链。

解决方案

方案一:确保CA证书已正确导入(首要步骤)

  1. 确认CA服务器证书已导入BMC

    • 登录BMC Web界面
    • 进入 用户&安全证书管理CA证书管理
    • 确保用于签署SSL证书的CA根证书(例如openUBMC-Root-CA)已成功导入
    • 如果未导入,请先通过"导入CA证书"功能上传正确的CA证书
  2. 验证证书链完整性

    • 确保导入的CA证书是完整的信任链起点
    • 参考知识库中XCA工具创建openUBMC-Root-CA自签名CA证书的做法

方案二:检查网络与服务器可达性

  1. 验证BMC能访问CA服务器:

    # 在BMC上执行ping测试
    ping 10.1.17.74
    
    # 检查端口连通性
    telnet 10.1.17.74 5443
    
  2. 确认URL路径正确:

    • 服务器地址:10.1.17.74
    • 端口:5443
    • 路径:/api/csr/sign/pem(需确认CA服务实际监听路径)

方案三:检查证书主题配置

  • 在"证书主题"配置中:
    • 国家(C) 已正确设置为 CN
    • 常用名(CN) 设置为 Server
  • 建议补充完整其他字段(省份、城市、公司、部门)以提高兼容性

方案四:时间同步检查

  • 确保BMC系统时间准确
  • 错误的时间会导致证书有效期验证失败
  • 通过如下命令设置时间:
    date -s "2026-04-30 10:00:00"
    

方案五:调试与日志收集

  1. 查看完整日志文件:

    tail -f /var/log/app.log | grep certificate
    
  2. 使用CLI工具辅助诊断:

    • 尝试使用ipmcget/ipmcset命令行工具进行证书操作
    • 参考知识库中提到的ipmcset -t certificate -d import命令模式

根本原因总结

SSL证书更新失败的根本原因是证书信任链断裂。BMC在尝试连接CA服务器时,由于自身未预置或未正确导入相应的信任根证书(CA Certificate),导致无法验证CA服务器的身份,从而引发SSL握手失败和后续的证书请求流程中断。

此外,AKID/SKID标识符不匹配PKCS#10属性无效等问题也可能源于新旧证书密钥体系不一致,或BMC内部证书管理状态异常。

预防建议

  1. 提前配置信任锚点

    • 在启用任何基于CA的自动更新功能前,务必先将根CA证书导入BMC的信任存储
  2. 保持系统时间准确

    • 启用NTP服务或定期校准系统时钟
  3. 使用兼容的证书标准

    • 参考知识库中关于Certificate Issue提及的PKCS vs PSS签名标准兼容性问题
  4. 完整测试证书生命周期

    • 先测试手动证书导入是否成功,再尝试自动更新功能
  5. 参考标准实践

    • 遵循知识库中提到的XCA工具生成openUBMC-Root-CA及其服务器证书的标准流程

版权声明 © SICHUAN HUAKUN ZHENYU INTELLIGENT TECHNOLOGY CO.,LTD, 2025-2026. All rights reserved.