已开启
[需求]: 支持框内通信证书优化 #7
pengxianglin创建于  14 天前
pengxianglin成员
14 天前 创建

所属版本

openUBMC 26.12

版本分支

openUBMC main

简要说明

支持框内通信证书独立管理,与常规CA证书管理隔离

前置条件

BMC运行正常

系统用户

运维人员、网管

主成功场景

1、支持框内通信证书独立管理
2、支持框内通信证书重复导入
3、支持框内通信证书与通用CA证书重复

非功能需求类型

兼容性影响评估

不涉及

扩展场景(含异常场景)

NA

周边依赖

NA

约束

NA

likedislike
openUBMC-robotopenUBMC-robot成员
14 天前 添加了label:sig/sig-security
openUBMC-robot
openUBMC-robot成员
14 天前 评论:

欢迎来到 openUBMC 社区

Hey @Free_Tomato , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 说明文档 或 论坛 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。您可以自助配置此仓库的 PR 合并规则,更多详情,请参阅机器人自助配置使用手册。

联系指引

有疑问可以联系 SIG: sig-security ,
维护者是: @Renyqing, @TacoJay, @loopvoid ,
优秀贡献者是: @Free_Tomato .

likedislike
openUBMC-robot
openUBMC-robot成员
14 天前 评论:

Issue 工作流介绍

社区的需求和缺陷的工作流状态处于纳管中。

类型 上个状态 下个状态 评论命令 谁可以操作
需求 待办的 已接纳 /todo2accepted SIG组: sig-release-management (maintainer)
需求 已接纳 开发中 /accepted2developing 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 开发中 待验收 /developing2UAT 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 待验收 已完成 /UAT2done SIG组: sig-QA (maintainer,committer)
需求 待办的 已挂起 /todo2suspended SIG组: sig-release-management (maintainer)
需求 已挂起 已接纳 /suspended2accepted SIG组: sig-release-management (maintainer)
需求 待办的 已拒绝 /todo2rejected SIG组: sig-release-management (maintainer)
需求 已拒绝 已接纳 /rejected2accepted SIG组: sig-release-management (maintainer)
likedislike
Ppengxianglin成员
14 天前 关联了看板:openUBMC 26.12需求看板
Ppengxianglin成员
14 天前 关联了pull request:feat: 支持框内通信CA证书独立管理 - 底层管理能力
Cchengkun成员
14 天前 关联了pull request:feat: 支持框内通信证书优化
Ppengxianglin成员
11 天前 关联了pull request:feat: bmc.kepler.CertificateService接口调整方法ImportCert、ImportCertificate、DeleteCert、ImportCRL中证书id的取值范围
wangjian成员
11 天前 评论:

/todo2accepted

likedislike
openUBMC-robotopenUBMC-robot成员
11 天前 issue状态由 待办的 改变为 已接纳
Sshaowenjian
11 天前 关联了pull request:feat: webui支持框内通信CA证书标签管理并按option切换新旧方案
Ppengxianglin成员
10 天前 关联了pull request:feat: 临时规避自动生成导致错误校验的问题
Ppengxianglin成员
10 天前 关联了pull request:feat: 变更File Action命令导入CA时的取值范围
Cchengkun成员
10 天前 关联了pull request:feat: 支持框内通信证书优化
Cchengkun成员
10 天前 删除了关联的pull request:feat: 支持框内通信证书优化
Ppengxianglin成员
10 天前 关联了pull request:feat: 支持框内通信CA证书管理优化
zhaotianli成员
10 天前 评论:

PR #1655 回顾分析: 【5fb35dc772a2dd20c8ccf5bf1b65847a】feat: 支持框内通信CA证书管理优化

仓库: openUBMC/rackmount
分支: Free_Tomato/main → openUBMC/main
合并时间: 2026-10-27 21:34
作者: Free_Tomato (pengxianglin)
合入触发: L_Ling (/lgtm /approve /publish /check-pr)

注:get-ai-review 未检索到 OpenClaw AI 检视记录(返回空)。本回顾纳入两类 AI/自动生成检视:openubmc-ci-bot 流水线检视(10-26 17:01~17:02,4 条 diff 意见 + 1 份汇总报告,评级"良好",0 严重/1 警告/3 建议)与 Richardli25 账号发布的维度检视报告(10-27 20:54,含设计一致性逐项核对,结论"一致")。本 PR 无人工 diff_comment,人工参与为 L_Ling 终审批准。


1. AI 检视意见追踪

# 来源 AI 发现 级别 后续处理 说明
1 ci-bot 10-26 17:01 JSON Range [1,104] 与插件实际合法集合 [1-32]∪[101-104] 不一致,Id 33~100 通过映射层校验后在插件层被通用错误拒绝,报错不友好 警告 标记解决,未改代码 作者 10-27 19:14 标记解决;[1,104] 范围保留——与评审贴 8033 结论"由业务侧区分有效范围 1~32、101~104"一致,is_valid_cert_path/is_valid_cert 在插件层拒绝 33~100,属设计约定行为(Richardli25 D21 亦认定非缺陷)
2 ci-bot 10-26 17:01 get_ca_list_by_type 中 tonumber(string.match(path, CA_PATH_FMT)) 未判空,路径不匹配时 cert_id >= min_id 触发 compare nil 运行时错误 建议 标记解决,未改代码 作者 10-27 19:15 标记解决但代码未加判空(当前输入均能命中模板);Richardli25 10-27 20:54 检视再次提出同类建议("标记 resolved 但代码未采纳,建议补充"),合入前仍未响应
3 ci-bot 10-26 17:01 新增 GetCaList 后 certtype=0 返回被限制为 Id 1~32,101~104 组不再出现,需确认前端/历史调用方兼容 建议 标记解决,未改代码 作者 10-27 19:14 标记解决,保持过滤实现;Richardli25 后续确认底层常规 CA 本就仅 1~32、实际返回不变,风险低
4 ci-bot 10-26 17:01 新增 GetCaList 结束行行尾多余空格,可能触发 pre-commit trailing-whitespace 拦截 建议 ✅ 已采纳修复 10-27 代码更新后清理(pre-commit 10-26 17:02/10-27 19:54 FAILED → 10-27 20:24 SUCCESS);Richardli25 验证最终文件无行尾空格
指标 结果
AI 意见总数 4
已采纳并修复 1
已回复说明(文字回复) 0
标记解决未改代码 3(其中 2 项经设计结论/后续检视佐证为非缺陷或低风险)

2. 人工检视补充

  • 检视人: L_Ling(终审)、Richardli25(深度检视报告)
  • 意见概要: 本 PR 无人工 diff_comment。
    • Richardli25(10-27 20:54,最终 commit 之后)发布维度检视报告:设计实现一致性结论为"一致"(D15/D17/D21/D19/D22/D23/D24/D25 逐项通过),另提 3 条发现——①建议:get_ca_list_by_type nil 判空(同 ci-bot 意见 #2,指出已标记 resolved 但未采纳);②提示:AccountService/Action.json 的 ImportCrl RootCertId 新增 Range [1,32] 属评审贴 5 个评审点之外的顺带变更,建议补充说明以保持可追溯;③提示:certtype=0 行为收窄实际返回不变。合入前无代码响应(最终 commit 20:15 早于报告 20:54)。
    • L_Ling 于 21:34 /lgtm /approve /publish /check-pr 批准并触发合入(距 Richardli25 报告约 40 分钟)。
    • 流程侧:开发者当日多次 /retest 推动 CI 通过;DataSculptor 于 Issue #7 /todo2accepted 推动需求接纳。
  • 解决状态: 不适用(无人工 diff 意见;Richardli25 报告为 pr_comment,无 resolved 机制)。

3. 评审贴覆盖情况

评审贴链接:【已评审】支持框内通信CA证书管理优化

评审点 是否涵盖
评审点1:资源协作接口 bmc.kepler.CertificateService(ImportCert/ImportCertificate/DeleteCert/ImportCRL)Id 范围 0~32→0~104 ❌ 未涵盖(属 mdb_interface 仓接口定义变更,本 PR 无相关文件)
评审点2:IPMI 命令 File-Action(CA 证书类型)id 范围增加 101~104 ❌ 未涵盖(本 PR 无 IPMI 变更文件,由证书管理组件/其他仓承接)
评审点3:Redfish CertificateService.ImportCACertificate Id 范围 1~32→1~104 ✅ 已涵盖(CertificateService.json ActionInfo 与 Action ReqBody 双侧 MaximumValue 32→104)
评审点4:Redfish CertificateService.ImportCACertificateCRL CertId 范围 1~32→1~104 ✅ 已涵盖(同上,双侧同步修改)
评审点5:Redfish CertificateService.DeleteCACertificate Id 范围 1~32→1~104 ✅ 已涵盖(同上,双侧同步修改)

覆盖统计: 3/5(评审点1/2 属其他仓库/组件范围,需在对应仓跟踪闭环)

另注:本 PR 额外包含评审点外顺带变更——AccountService.ImportCrl 的 RootCertId 补充 Range [1,32] 校验,以及 web_backend 侧 certtype=2 CA 列表过滤(GetCaList/get_ca_list_by_type,对应设计"整体方案"中框内通信 CA 独立管理的配套实现)。

4. 总结

  • AI 流水线检视闭环良好但采纳率有限:4 条意见全部由作者标记解决后才推进合入(10-27 19:14~19:15 集中解决,随后 /retest 验证),其中仅 1 条(行尾空格)实际修改代码;Range 一致性与 certtype=0 兼容性 2 条经评审贴结论与 Richardli25 复核佐证为约定行为/低风险,属合理不采纳。
  • 唯一遗留项:get_ca_list_by_type nil 判空建议两度提出(ci-bot 10-26、Richardli25 10-27)均未落码,标记 resolved 但代码未采纳——触发概率低(输入来自 /bmc/kepler/Managers/1/Certificates 全量列表,正常均命中模板),但一旦触发即 500,建议后续 PR 补充一行判空加固。
  • 双重 AI 检视互补:ci-bot 流水线检视聚焦代码级问题,Richardli25 维度报告完成设计一致性逐项核对(结论"一致",与评审贴 5 点结论吻合)并补充 2 条可追溯性提示(RootCertId 顺带变更、certtype 行为收窄),形成"机械检视 + 设计核对"两层把关。
  • 人工参与以流程性终审为主:无人工 diff_comment,L_Ling 在双重 AI 检视结论均无阻塞问题后批准合入,节奏紧凑(报告后约 40 分钟)。
  • 需求闭环跟踪:本 PR 覆盖评审贴 3/5 Redfish 评审点;mdb 接口(评审点1)与 IPMI File-Action(评审点2)需在 mdb_interface 仓及证书管理组件侧继续跟踪,Issue #7 验收前建议确认全量评审点落地。

此回顾分析由 AI (OpenClaw + GLM-5-turbo) 完成

likedislike