更新时间:2022-12-22 GMT+08:00

申请证书

功能介绍

申请证书。

URI

POST /v1/private-certificates

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表2 请求Body参数

参数

是否必选

参数类型

描述

issuer_id

String

父CA证书ID。

最小长度:36

最大长度:36

key_algorithm

String

密钥算法,可选值如下:

  • RSA2048 : RSA算法,密钥长度2048位;

  • RSA4096 : RSA算法,密钥长度4096位;

  • EC256 : 椭圆曲线算法(Elliptic Curve Digital Signature Algorithm (ECDSA)),密钥长度256位;

  • EC384 : 椭圆曲线算法(Elliptic Curve Digital Signature Algorithm (ECDSA)),密钥长度384位。

signature_algorithm

String

签名哈希算法,可选值如下:

  • SHA256

  • SHA384

  • SHA512

distinguished_name

CertDistinguishedName object

证书名称配置,详情请参见CertDistinguishedName字段数据结构说明。

validity

Validity object

证书有效期,详情请参见Validity字段数据结构说明。

key_usages

Array of strings

密钥用法,具体标准参见RFC 5280中:4.2.1.3节

  • digitalSignature : 数字签名;

  • nonRepudiation : 不可抵赖;

  • keyEncipherment : 密钥用于加密密钥数据;

  • dataEncipherment : 用于加密数据;

  • keyAgreement : 密钥协商;

  • keyCertSign : 签发证书;

  • cRLSign : 签发吊销列表;

  • encipherOnly : 仅用于加密;

  • decipherOnly : 仅用于解密。

subject_alternative_names

Array of SubjectAlternativeName objects

主体备用名称,详情请参见SubjectAlternativeName字段数据结构说明。

  • array大小:[0,20]。

extended_key_usage

ExtendedKeyUsage object

增强型密钥用法,详情请参见ExtendedKeyUsage字段数据结构说明。

customized_extension

CustomizedExtension object

自定义扩展信息,详情请参见CustomizedExtension字段数据结构说明。

表3 CertDistinguishedName

参数

是否必选

参数类型

描述

common_name

String

证书通用名称(CN)。

最小长度:1

最大长度:64

country

String

国家编码,需符合正则"[A-Za-z]{2}"。若不传入,则默认继承父CA对应的值。

最小长度:2

最大长度:2

state

String

省市名称。若不传入,则默认继承父CA对应的值。

最小长度:1

最大长度:128

locality

String

地区名称。若不传入,则默认继承父CA对应的值。

最小长度:1

最大长度:128

organization

String

组织名称。若不传入,则默认继承父CA对应的值。

最小长度:1

最大长度:64

organizational_unit

String

组织单元名称。若不传入,则默认继承父CA对应的值。

最小长度:1

最大长度:64

表4 Validity

参数

是否必选

参数类型

描述

type

String

有效期类型,为必填值:

  • YEAR : 年(12个月)

  • MONTH : 月(统一按31天)

  • DAY : 日

  • HOUR : 小时

value

Integer

证书有效期值,与type对应的类型值,换算成年需满足以下规则:

  • 根CA,有效期小于等于30年;

  • 从属CA与私有证书,有效期小于等于20年。

start_from

Integer

起始时间,为可选值:

  • 格式为时间戳(毫秒级),如1645146939688代表2022-02-18 09:15:39;

  • 不早于当前时间5分钟,即start_from > (current_time - 5min)。

表5 SubjectAlternativeName

参数

是否必选

参数类型

描述

type

String

备用名称类型,当前仅支持DNS、IP、EMAIL、URI。

  • DNS

  • IP

  • EMAIL

  • URI

value

String

对应备用名称类型的值。

  • DNS类型,长度为不超过253;

  • IP类型,长度不超过39,支持IPV4、IPV6;

  • EMAIL类型,长度不超过256;

  • URI类型,长度不超过253。

表6 ExtendedKeyUsage

参数

是否必选

参数类型

描述

server_auth

Boolean

服务器身份验证,OID为:1.3.6.1.5.5.7.3.1。

  • true

  • false

说明:

服务器证书请启用本增强型密钥用法,默认为false。

缺省值:false

client_auth

Boolean

客户端身份验证,OID为:1.3.6.1.5.5.7.3.2。

  • true

  • false

说明:

客户端证书请启用本增强型密钥用法,默认为false。

缺省值:false

code_signing

Boolean

代码签名,OID为:1.3.6.1.5.5.7.3.3。

  • true

  • false

说明:

签署可下载的可执行代码客户端认证,默认为false。

缺省值:false

email_protection

Boolean

安全电子邮件,OID为:1.3.6.1.5.5.7.3.4。

  • true

  • false

说明:

电子邮件保护,默认为false。

缺省值:false

time_stamping

Boolean

时间戳,OID为:1.3.6.1.5.5.7.3.8。

  • true

  • false

说明:

将一个对象的哈希绑定到一个时间,默认为false。

缺省值:false

表7 CustomizedExtension

参数

是否必选

参数类型

描述

object_identifier

String

对象标识符。

说明:

本参数需要满足ASN1规范的点分十进制符号格式的字符串,如1.3.6.1.4.1.2011.4.99。

最小长度:1

最大长度:64

value

String

自定义属性内容。

最小长度:1

最大长度:64

响应参数

状态码: 200

表8 响应Body参数

参数

参数类型

描述

certificate_id

String

当前签发的证书ID。

最小长度:36

最大长度:36

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误请求返回的错误码。

最小长度:3

最大长度:36

error_msg

String

错误请求返回的错误信息。

最小长度:0

最大长度:1024

状态码: 401

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误请求返回的错误码。

最小长度:3

最大长度:36

error_msg

String

错误请求返回的错误信息。

最小长度:0

最大长度:1024

状态码: 403

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误请求返回的错误码。

最小长度:3

最大长度:36

error_msg

String

错误请求返回的错误信息。

最小长度:0

最大长度:1024

状态码: 404

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误请求返回的错误码。

最小长度:3

最大长度:36

error_msg

String

错误请求返回的错误信息。

最小长度:0

最大长度:1024

状态码: 500

表13 响应Body参数

参数

参数类型

描述

error_code

String

错误请求返回的错误码。

最小长度:3

最大长度:36

error_msg

String

错误请求返回的错误信息。

最小长度:0

最大长度:1024

请求示例

申请证书,请求头中的X-Auth-Token字段需要填写token,且该token需要具有本API的访问权限。

POST https://ccm.ae-ad-1.myhuaweicloud.com/v1/private-certificates

{
  "key_algorithm" : "RSA2048",
  "distinguished_name" : {
    "country" : "your country abbreviation",
    "state" : "your state",
    "locality" : "your locality",
    "organization" : "your organization",
    "organizational_unit" : "your unit",
    "common_name" : "your CN"
  },
  "subject_alternative_names" : [ {
    "type" : "IP",
    "value" : "156.127.116.38"
  } ],
  "signature_algorithm" : "SHA256",
  "validity" : {
    "type" : "YEAR",
    "value" : 3
  },
  "issuer_id" : "2cb2878b-6cd1-460d-bd25-afe655159bdc",
  "key_usages" : [ "digitalSignature", "nonRepudiation" ]
}

响应示例

状态码: 200

请求已成功

{
  "certificate_id" : "ae9a326a-b61e-4446-854d-cda30ffe31f5"
}

状态码: 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

服务内部错误。

错误码

请参见错误码