【已评审】支持国密证书管理的北向接口配置

ISSUE链接

【需求】支持国密证书管理的北向接口配置-rackmount-GitCode

背景

支持国密HTTPS证书的北向接口

决策点

1、新增redfish/rest中GenerateCSR接口的可选参数KeyPairAlgorithm
2、新增rest接口:/UI/Rest/AccessMgnt/CertMgnt/CertsInformation/GmCerts
3、新增资源协作接口GenerateCSR
4、新增ipmi文件操作类型:国密SSL/CSR文件

详细描述

一、redfish新增可选参数KeyPairAlgorithm

uri:/redfish/v1/CertificateService/Actions/CertificateService.GenerateCSR
变化类型:新增属性
操作类型: POST
应用场景:客户导入国密SSL证书前,预先生成国密csr文件
详细描述:

属性名称 取值类型 范围 默认 操作权限 约束
KeyPairAlgorithm string 长度0-64 “” SecurityMgmt 取值范围:“TPM_ALG_SM2、TPM_ALG_RSA、TPM_ALG_ECC”(遵循Trusted Computing Group Algorithm Registry 标准)

二、rest新增可选参数KeyPairAlgorithm

uri:/UI/Rest/Services/WEBService/ExportCSR
变化类型:新增属性
操作类型:POST
应用场景:客户导入国密SSL证书前,预先生成国密csr文件
详细描述:

属性名称 取值类型 范围 默认 操作权限 约束
KeyPairAlgorithm string 长度0-64 “” SecurityMgmt 取值范围:“TPM_ALG_SM2、TPM_ALG_RSA、TPM_ALG_ECC”(遵循Trusted Computing Group Algorithm Registry 标准)

三、reset新增接口

uri:/UI/Rest/AccessMgnt/CertMgnt/CertsInformation/GmCerts
变化类型:新增接口
操作类型: GET
应用场景:客户导入国密证书后,查询当前国密证书信息用于web展示
详细描述:

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

四、新增资源协作接口GenerateCSR

资源path:/bmc/kepler/CertificateService
资源interface:bmc.kepler.CertificateService
变化类型:新增接口
应用场景:客户生成csr时用于生成csr文件
持久化类型: 不持久化
操作权限:SecurityMgmt

详细描述:

名称 变化 签名 权限 持久化 说明 约束
GenerateCSR 新增接口 请求:ssssssasasia{ss}响应:u SecurityMgmt NA Country/State/Location/OrgName/OrgUnit/CommonName/AlternativeNames/KeyUsage/KeyBitLength/KeyPairAlgorithm均参考redfish标准定义 1.[color=#D40000]KeyPairAlgorithm[/color]:生成csr对应使用的密钥对算法,国密取值TPM_ALG_SM2(取值遵循’Trusted Computing Group Algorithm Registry’规范)2.取值范围[0, 64]

四、新增ipmi文件操作类型:国密SSL/CSR文件

复用文件动作(File Action)ipmi接口
IPMI命令字:netfn:30h,cmd:93h
变化类型:新增参数取值
应用场景:客户生成国密csr文件,以及导入国密SSL证书
操作类型:SET
操作角色:Administrator
操作权限:ReadOnly

评审结论:

  1. 同意redfish接口/redfish/v1/CertificateService/Actions/CertificateService.GenerateCSR的[color=#88aa00]POST[/color]操作新增参数KeyPairAlgorithm(可选参数,string类型,长度0~64,取值范围为"TPM_ALG_RSA","TPM_ALG_ECC","TPM_ALG_SM2"

  2. 同意webrest接口 /UI/Rest/Services/WEBService/ExportCSR的[color=#88aa00]POST[/color]方法新增参数KeyPairAlgorithm(可选参数,string类型,长度0~64,取值范围为"TPM_ALG_RSA","TPM_ALG_ECC","TPM_ALG_SM2"

  3. 同意新增webrest接口:/UI/Rest/AccessMgnt/CertMgnt/CertsInformation/GmCerts,操作类型:[color=#88aa00]GET[/color],权限为ReadOnly,响应体为证书结构化信息

  4. 同意复用FileAction命令(netfn:30h,cmd:93h,subcmd=57h),新增以下文件类型
    0x0D-国密SSL CSR文件(只支持导出)
    0x0E-国密签名SSL CERT证书(只支持导入)
    0x0F-国密加密SSL CERT证书(只支持导入)
    代码实现时需要分别控制每个文件类型的操作权限,资料文档新增表格描述每个文件类型的操作角色/操作权限/支持导入/支持导出属性

  5. 同意资源协作接口bmc.kepler.CertificateService新增方法GenerateCSR,SecurityMgmt权限,请求签名ssssssasasia{ss},响应签名无,参数说明如下:

字段 类型签名 描述
Country s (必选)两大写字母国家名称(如:CN),对应 RFC5280中 'countryName’字段
State s 省/州,对应 RFC5280中’stateOrProvinceName’字段
City s 城市/地址,对应 RFC5280中’localityName’字段
Organization s 公司/组织,对应 RFC5280中’organizationName’字段
OrganizationalUnit s 部门,对应 RFC5280中’organizationalUnitName’字段
CommonName s (必选)常用名,对应 RFC5280中’commonName’字段
AlternativeNames as CSR的SAN字段内容,对应 RFC5280中’subjectAltName’字段
KeyUsage as 证书密钥用途
KeyBitLength i 密钥bit长度
Options a{ss} 其余可选配置{“KeyPairAlgorithm” = “TPM_ALG_SM2"或"TPM_ALG_RSA"或"TPM_ALG_ECC”}