【废弃】支持证书管理能力扩展

背景

支持用于框内通信证书生命周期管理以及支持导入/导出以及查询框内通信证书的北向接口

关联ISSUE

[需求]: 支持导入/查询身份证书的北向接口 - openUBMC/rackmount - AtomGit | GitCode

整体方案

支持单独导入身份证书

新增ipmi导出框内通信证书的CSR以及导入框内通信证书

新增redfish和rest接口查询框内通信证书

评审点

支持框内管理板与节点板通信,web界面需要获取当前框内通信使能状态

/UI/Rest/AccessMgnt/AdvancedSecurity GET接口新增InterChassisAuthEnabled返回字段,用于指示当前框内通信使能状态

评审点1:web界面获取框内通信使能状态的接口和字段名称

场景1:变更webrest接口

  • URI:/UI/Rest/AccessMgnt/AdvancedSecurity

  • 操作类型:GET

  • 变化类型:新增返回字段

  • 新增返回字段

属性名称 属性说明 属性类型
InterChassisAuthEnabled 框内通信使能 bool

RspBody响应体示例:

{

"InterChassisAuthEnabled": true

}

评审点2:支持IPMI接口导入框内通信证书

ipmi命令File Action系列下新增对框内通信证书的文件操作(导出CSR(FileType取值11h)、导入证书(FileType取值12h))

命令名称:File Action
命令权限:SecurityMgmt
是否锁定之后可以访问:
是否有敏感数据:
命令样式:

  • 请求:ipmitool raw 0x30 0x93 <ManufacturerId><SubCmd> <CmdType> <ActionType> <FileType> <Reserved> <CertId>

  • 响应:<ManufactureId> <CompletionCode>

命令请求参数:

字节顺序 域取值说明
NetFn 30h
Cmd 93h
1:3 Manufacturer ID
4 SubCmd,固定为 57h
5 CmdType, 命令行为 0- 设置 1- 查询
6 ActionType, 操作类型 1- 导出文件 2- 导入文件
7 FileType,文件类型
11h 框内通信证书(只支持导入)
12h 框内通信CSR证书(只支持导出)
8 Reserved, 预留扩展,填0
9 CertId 扩展信息长度
10 FileNameLength 文件名长度 Byte5 = 1时 该字段不需要填写
11~N FileName 文件名(需要带路径),Byte5 = 1时,该字段不需要填写
11+N~11+N+M 扩展信息

命令响应参数:

字节顺序 域取值说明
1 CompletionCode,完成码
00h = 【标准完成码】命令响应成功
CCh = 【标准完成码】命令入参超过支持范围
80h = 命令的长度和参数不匹配
81h = 命令的参数无法支持
2 ManufactureId

评审点3:新增Redfish接口获取框内通信证书(标准接口)

  • URI:/redfish/v1/Managers/{ManagerId}/NetworkProtocol/HTTPS/Certificates/{CertificateId}
  • 操作类型: GET
  • 变化类型: 新增接口
  • 应用场景:客户导入框内通信证书,查询当前框内通信证书的信息

CertificateId定义为

查询指定通信证书资源信息参数说明

参数 参数说明 取值
manager_id 管理资源ID
针对机架服务器,取值为1
针对高密服务器,取值为BladeN(N表示节点槽位号),例如“Blade1”
针对刀片服务器,取值可以为BladeN(N表示计算节点槽位号)或SwiN(N表示交换模块槽位号),例如“Swi1”
针对X6800 V5,X6000 V5,G5500,XA320 V2服务器,取值还可以为Enc,表示计算节点所在的机框资源 针对设备U位信息,取值可以为UN(N表示设备U位号),例如"U1"
针对机柜资源,取值为Rack
certificate_id 框内通信证书ID

RspBody响应体结构

属性名称 取值类型 取值范围 默认值 操作权限 是否频繁变化并需要屏蔽变化事件 约束
@odata.context 字符串 只读,ReadOnly
@odata.id 字符串 只读,ReadOnly
@odata.type 字符串 只读,ReadOnly
Id 字符串 只读,ReadOnly
Name 字符串 只读,ReadOnly
CertificateString 字符串 只读,ReadOnly
CertificateType 字符串 只读,ReadOnly
Subject 证书主题信息 只读,ReadOnly
Issuer 证书签发者信息 只读,ReadOnly
SerialNumber 字符串 只读,ReadOnly
SignatureAlgorithm 字符串 只读,ReadOnly
KeyUsage 字符串数组 只读,ReadOnly
Fingerprint 字符串 只读,ReadOnly
FingerprintHashAlgorithm 字符串 只读,ReadOnly

输出说明
指定通信证书资源信息

字段 类型 说明
@odata.context 字符串 指定证书资源模型的OData描述信息
@odata.id 字符串 指定证书资源节点的访问路径
@odata.type 字符串 指定证书资源类型
Id 字符串 指定证书资源的ID
Name 字符串 指定证书资源的名称
Subject 证书主题信息
CertificateString 字符串 指定证书内容
CertificateType 字符串 指定证书类型
Issuer 证书签发者信息
SerialNumber 字符串 指定证书序列号
SignatureAlgorithm 字符串 指定证书签名算法
KeyUsage 字符串数组 指定证书密钥用途
Fingerprint 字符串 指定证书指纹信息
FingerprintHashAlgorithm 字符串 指定证书指纹信息算法

评审点4:新增Rest接口获取框内通信证书

  • URI:/UI/Rest/AccessMgnt/CertMgnt/CertsInformation/CommunicationCerts/:certificateid
  • 操作类型: GET
  • 变化类型: 新增接口
  • 应用场景:客户导入框内通信证书,查询当前框内通信证书的信息

详细描述:

取值类型 范围 默认 操作权限 约束
object GET接口返回证书object “” ReadOnly 返回证书结构体,字段信息准寻x509标准

评审结论

已合并到 【已评审】支持导入/导出以及查询框内通信证书的北向接口 这个帖子 此帖子已废弃

遗留问题