创建CA
功能介绍
创建CA,分以下三种情况:
- 创建根CA,根据参数介绍中,填写必选值;
- 创建从属CA,并需要直接激活该证书,根据参数介绍中,填写必选值;
- 创建从属CA,不需要直接激活该证书,请求body中只需要缺少此三个参数之一即可:issuer_id、signature_algorithm、validity。
URI
POST /v1/private-certificate-authorities
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户token,参见:IAM token获取方法。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| type | 是 | String | 创建的CA类型。 
 | 
| distinguished_name | 是 | DistinguishedName object | 证书名称配置,详情请参见DistinguishedName字段数据结构说明。 | 
| key_algorithm | 是 | String | 密钥算法,可选值如下: 
 | 
| validity | 否 | Validity object | 证书有效期,分以下三种情况: 
 
         说明: 
         详情请参见Validity字段数据结构说明。 | 
| issuer_id | 否 | String | 父CA证书ID,分以下三种情况: 
 最小长度:36 最大长度:36 | 
| path_length | 否 | Integer | CA证书路径长度,分以下三种情况: 
 最小值:0 最大值:6 | 
| signature_algorithm | 否 | String | 签名哈希算法。 
 | 
| key_usages | 否 | Array of strings | 密钥用法,具体标准参见RFC 5280中:4.2.1.3节。 
 
         说明: 
         缺省值如下: 
 | 
| crl_configuration | 否 | CrlConfiguration object | 证书CRL配置,详情请参见CrlConfiguration字段数据结构说明。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| common_name | 是 | String | 证书通用名称(CN)。 最小长度:1 最大长度:64 | 
| country | 是 | String | 国家编码,需符合正则"[A-Za-z]{2}"。 最小长度:2 最大长度:2 | 
| state | 是 | String | 省市名称。 最小长度:1 最大长度:128 | 
| locality | 是 | String | 地区名称。 最小长度:1 最大长度:128 | 
| organization | 是 | String | 组织名称。 最小长度:1 最大长度:64 | 
| organizational_unit | 是 | String | 组织单元名称。 最小长度:1 最大长度:64 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| type | 是 | String | 有效期类型,为必填值: 
 | 
| value | 是 | Integer | 证书有效期值,与type对应的类型值,换算成年需满足以下规则: 
 | 
| start_from | 否 | Integer | 起始时间,为可选值: 
 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| enabled | 是 | Boolean | 是否启用CRL发布功能。 
 | 
| crl_name | 否 | String | 吊销列表文件名称。 
         说明: 
         若用户不指定,系统将默认采用当前证书的父CA ID。 | 
| obs_bucket_name | 否 | String | OBS桶名称。 
         说明: 
         当需要启用CRL发布功能: 
 | 
| valid_days | 否 | Integer | CRL更新周期,单位为"天"。当启用CRL发布功能,为必填项。 最小值:7 最大值:30 | 
响应参数
状态码: 200
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| ca_id | String | 当前签发的CA证书ID。 最小长度:36 最大长度:36 | 
状态码: 400
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误请求返回的错误码。 最小长度:3 最大长度:36 | 
| error_msg | String | 错误请求返回的错误信息。 最小长度:0 最大长度:1024 | 
状态码: 401
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误请求返回的错误码。 最小长度:3 最大长度:36 | 
| error_msg | String | 错误请求返回的错误信息。 最小长度:0 最大长度:1024 | 
状态码: 403
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误请求返回的错误码。 最小长度:3 最大长度:36 | 
| error_msg | String | 错误请求返回的错误信息。 最小长度:0 最大长度:1024 | 
状态码: 404
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误请求返回的错误码。 最小长度:3 最大长度:36 | 
| error_msg | String | 错误请求返回的错误信息。 最小长度:0 最大长度:1024 | 
状态码: 500
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误请求返回的错误码。 最小长度:3 最大长度:36 | 
| error_msg | String | 错误请求返回的错误信息。 最小长度:0 最大长度:1024 | 
请求示例
创建CA证书,请求头中的X-Auth-Token字段需要填写token,且该token需要具有本API的访问权限。
POST https://{Endpoint}/v1/private-certificate-authorities
{
  "type" : "ROOT",
  "key_algorithm" : "RSA4096",
  "signature_algorithm" : "SHA512",
  "distinguished_name" : {
    "common_name" : "demoRootRSA",
    "country" : "CN",
    "locality" : "chengdu",
    "organization" : "TestA",
    "organization_unit" : "dew",
    "state" : "sichuan"
  },
  "validity" : {
    "type" : "YEAR",
    "value" : 3
  },
  "crl_configuration" : {
    "enabled" : false,
    "obs_bucket_name" : "demoBucket",
    "valid_days" : 8
  }
}
 响应示例
状态码: 200
请求已成功
{
  "ca_id" : "66504812-fedc-414a-9b7c-4c1836398524"
}
  状态码: 400
请求参数有误。
{
  "error_code" : "PCA.XXX",
  "error_msg" : "XXX"
}
  状态码: 401
被请求的页面需要鉴权。
{
  "error_code" : "PCA.XXX",
  "error_msg" : "XXX"
}
  状态码: 403
认证失败。
{
  "error_code" : "PCA.XXX",
  "error_msg" : "XXX"
}
  状态码: 404
资源不存在或资源未找到。
{
  "error_code" : "PCA.XXX",
  "error_msg" : "XXX"
}
  状态码: 500
服务内部错误。
{
  "error_code" : "PCA.XXX",
  "error_msg" : "XXX"
}
 状态码
| 状态码 | 描述 | 
|---|---|
| 200 | 请求已成功 | 
| 400 | 请求参数有误。 | 
| 401 | 被请求的页面需要鉴权。 | 
| 403 | 认证失败。 | 
| 404 | 资源不存在或资源未找到。 | 
| 500 | 服务内部错误。 | 
错误码
请参见错误码。
 
    