通过CSR签发证书
功能介绍
通过CSR签发证书。功能约束如下:
- 1、当前默认参数如下:
- CA 默认参数:
- keyUsage: digitalSignature, keyCertSign, cRLSign,优先采用CSR中的参数;
- SignatureHashAlgorithm: SHA384;
- PathLength:0 (可自定义)。
- 私有证书:
- keyUsage: digitalSignature keyAgreement,优先采用CSR中的参数;
- SignatureHashAlgorithm: SHA384;
- CA 默认参数:
- 2、当传入的type为INTERMEDIATE_CA时,创建出的从属CA证书,有以下限制:
- 不占用CA配额。在查询CA列表时,不会返回该证书;
- 只支持通过以下两个接口获取其信息:
- GET /v1/private-certificate-authorities/{ca_id} 获取证书详情
- POST /v1/private-certificate-authorities/{ca_id}/export 导出证书
- 本接口返回的certificate_id即代表从属CA的ca_id;
- 无法用于签发证书,密钥在用户侧。
- 3、当type为ENTITY_CERT时,创建出的私有证书,有以下特点:
- 占用私有证书配额。在查询私有证书列表时,会返回该证书;
- 除了导出时不包含密钥信息(密钥在用户端),其余用法与其它私有证书一致。
注:需要使用“\r\n”或“\n”代替换行符,将CSR转换成一串字符,可参考示例请求。注:目前,证书的组织信息、公钥算法以及公钥内容等均来自CSR文件,暂不支持API传入。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/private-certificates/csr
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 最小长度:32 最大长度:2097152 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
issuer_id |
是 |
String |
父CA证书ID。 最小长度:36 最大长度:36 |
csr |
是 |
String |
证书签名请求。请使用“\r\n”或“\n”替代证书签名请求中的换行符,若通过console端请求此接口,则无需做符号转换。 最大长度:5120 |
validity |
是 |
Validity object |
证书有效期,详情请参见Validity字段数据结构说明。 |
type |
否 |
String |
证书类型,用于区分从属CA与私有证书。
|
path_length |
否 |
Integer |
路径长度,仅当签发从属CA时有效。 最小值:0 最大值:6 |
subject_alternative_names |
否 |
Array of SubjectAlternativeName objects |
主体备用名称(本接口预留参数,当前在后端被忽略),详情请参见SubjectAlternativeName字段数据结构说明。 数组长度:0 - 20 |
enterprise_project_id |
否 |
String |
企业多项目ID。用户未开通企业多项目时,不需要输入该字段。 用户开通企业多项目时,查询资源可以输入该字段。 若用户不输入该字段,默认查询租户所有有权限的企业多项目下的资源。 此时“enterprise_project_id”取值为“all”。 若用户输入该字段,取值满足以下任一条件. 取值为“all” 取值为“0” 满足正则匹配:“^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$” |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
String |
有效期类型,为必填值:
|
value |
是 |
Integer |
证书有效期值,与type对应的类型值,换算成年需满足以下规则:
|
start_from |
否 |
Integer |
起始时间,为可选值:
|
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
certificate_id |
String |
当前签发的证书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 |
请求示例
通过CSR签发证书,请求头中的X-Auth-Token字段需要填写token,且该token需要具有本API的访问权限。
POST https://{Endpoint}/v1/private-certificates/csr { "csr" : "-----BEGIN CERTIFICATE REQUEST-----\\nMIICyTCCAbECAQAwXjELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB3NpY2hhdW4xEDAO\\nBgNVBAcTB2NoZW5nZHUxCzAJBgNVBAoTAkhXMQswCQYDVQQLEwJJVDERMA8GA1UE\\nAxMIdGVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCZ4q5z\\nxqK/L/FC9x2jESeUW5GB6zS5rVxT0WLTCTv9d1LtWBLsRIinATYTYiP1pNo4/pBq\\nHlM3IiUDkc896CJerYlNzOIjTaV4GjCZvPrxSHU5toJvIDflBsY+gnzbT1ol/y0r\\n3yb9dx7eeF5rPR+U8RTw+Ov/ZNRb+0CY30hrXMdrWjp5dtLGTlr5EFYxlKNOPCkR\\n+6BGyJnC9PWSuqwsykFbgMRkcBaNAxa59dRhMF50pvx2Vs929vFrMi+ofDELUOqz\\n1vyjaEA3pn3AGJGXZgrGNbSfz12ixgGLes4cQD21GCIAWgnBQ7b1ru2V8ImUfyh0\\nyvTEyHJTuFbQ+257AgMBAAGgJjAkBgkqhkiG9w0BCQ4xFzAVMBMGA1UdEQQMMAqC\\nCHRlc3QuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBKfjZuYsz4s0wb1POIWn41eiAB\\np53qb63QKWILN9z8dLktcdSl3lPfcfPZpXv++QPtn3LR9rJKBawusk6SPXbvOGgS\\n5J+6eM8kVW2O3gHFgoaMcPYVtiO7ekG6o25qx6+Rj84wbFdmpOiCc8AwrLEBwzYV\\np1zaprWQu6PxBulkYPa3FLcntDdi7B67r0YTpxVvo1K7vHYFboDvPz7xG57QIFIM\\nwGd1OegariMT3N8gBOzLZc+jqLpxgo4xoNqBHMo6DEmKLdWdzU4ljpuGK9had99k\\nvQ5vft/Qra3v1uq2lOm/G92b0uA9Y1t2bMHobtAnuXL0HmY9XcLdzpC3f8h8\\n-----END CERTIFICATE REQUEST-----", "validity" : { "type" : "YEAR", "value" : 3 }, "issuer_id" : "2cb2878b-6cd1-460d-bd25-afe655159bdc" }
响应示例
状态码: 200
请求已成功
{ "certificate_id" : "e3e10fc6-5dff-4a70-9cb5-320d258a6215" }
状态码: 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 |
服务内部错误。 |
错误码
请参见错误码。