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
评审结论:
-
同意redfish接口
/redfish/v1/CertificateService/Actions/CertificateService.GenerateCSR的[color=#88aa00]POST[/color]操作新增参数:KeyPairAlgorithm(可选参数,string类型,长度0~64,取值范围为"TPM_ALG_RSA","TPM_ALG_ECC","TPM_ALG_SM2") -
同意webrest接口
/UI/Rest/Services/WEBService/ExportCSR的[color=#88aa00]POST[/color]方法新增参数:KeyPairAlgorithm(可选参数,string类型,长度0~64,取值范围为"TPM_ALG_RSA","TPM_ALG_ECC","TPM_ALG_SM2") -
同意新增webrest接口:
/UI/Rest/AccessMgnt/CertMgnt/CertsInformation/GmCerts,操作类型:[color=#88aa00]GET[/color],权限为ReadOnly,响应体为证书结构化信息 -
同意复用FileAction命令(netfn:30h,cmd:93h,subcmd=57h),新增以下文件类型
0x0D-国密SSL CSR文件(只支持导出)
0x0E-国密签名SSL CERT证书(只支持导入)
0x0F-国密加密SSL CERT证书(只支持导入)
代码实现时需要分别控制每个文件类型的操作权限,资料文档新增表格描述每个文件类型的操作角色/操作权限/支持导入/支持导出属性 -
同意资源协作接口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”} |
