Create an SSL certificate.
Function
Creating an SSL Certificate
URI
POST /v2/{project_id}/apic/certificates
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
project_id |
Yes |
String |
Project ID. For details about how to obtain the project ID, see Appendix > Obtaining a Project ID in the ROMA Connect API Reference. |
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
X-Auth-Token |
Yes |
String |
User token, which can be obtained by calling the IAM API (value of X-Subject-Token in the response header). |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
name |
Yes |
String |
Certificate name. It can contain 4 to 50 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.
NOTE:
Chinese characters must be in UTF-8 or Unicode format. |
|
cert_content |
Yes |
String |
Certificate content. |
|
private_key |
Yes |
String |
Private key. |
|
type |
No |
String |
Certificate scope:
The certificate scope cannot be changed. |
|
instance_id |
No |
String |
Instance ID. Mandatory when type is set to instance. |
|
trusted_root_ca |
No |
String |
Trusted root certificate (CA). |
|
algorithm_type |
No |
String |
Certificate algorithm type:
|
|
cert_content_sign |
No |
String |
Signature certificate content. This parameter is mandatory only when algorithm_type is set to SM2. |
|
private_key_sign |
No |
String |
Signature private key content. This parameter is mandatory only when algorithm_type is set to SM2. |
Response Parameters
Status code: 200
|
Parameter |
Type |
Description |
|---|---|---|
|
id |
String |
Certificate ID. |
|
name |
String |
Certificate name. |
|
type |
String |
Certificate type. Options:
|
|
instance_id |
String |
Instance ID.
|
|
project_id |
String |
Project ID. |
|
common_name |
String |
Domain name. |
|
san |
Array of strings |
SAN. |
|
not_after |
String |
Validity period end time. |
|
signature_algorithm |
String |
Signature algorithm. |
|
create_time |
String |
Creation time. |
|
update_time |
String |
Update time. |
|
algorithm_type |
String |
Certificate algorithm type:
|
|
is_has_trusted_root_ca |
Boolean |
Whether a trusted root certificate (CA) exists. The value is true if trusted_root_ca exists in the bound certificate. |
|
version |
Integer |
Version. |
|
organization |
Array of strings |
Company/Organization. |
|
organizational_unit |
Array of strings |
Department. |
|
locality |
Array of strings |
City. |
|
state |
Array of strings |
State/Province. |
|
country |
Array of strings |
Country. |
|
not_before |
String |
Validity period start time. |
|
serial_number |
String |
Serial number. |
|
issuer |
Array of strings |
Issuer. |
Status code: 400
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error description. |
Status code: 401
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error description. |
Status code: 403
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error description. |
Status code: 404
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error description. |
Status code: 500
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error description. |
Example Requests
Create an SSL certificate with type as instance.
{
"name" : "cert_demo",
"private_key" : "'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----'",
"cert_content" : "'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----'",
"type" : "instance",
"instance_id" : "f0fa1789-3b76-433b-a787-9892951c620e"
}
Example Responses
Status code: 200
OK
{
"id" : "a27be832f2e9441c8127fe48e3b5ac67",
"name" : "cert_demo",
"common_name" : "apigtest.xxx.com",
"san" : [ "apigtest.xxx.com", "*.san.com" ],
"version" : 3,
"organization" : [ "company" ],
"organizational_unit" : [ "IT" ],
"locality" : [ "city" ],
"state" : [ "state" ],
"country" : [ "Country" ],
"not_before" : "2019-06-01T00:00:00Z",
"not_after" : "2031-08-16T06:36:13Z",
"serial_number" : "13010",
"issuer" : [ "SSL Inc" ],
"signature_algorithm" : "SHA256-RSA",
"create_time" : "2021-08-20T02:03:53Z",
"update_time" : "2021-08-20T02:03:53Z",
"algorithm_type" : "RSA"
}
Status code: 400
Bad Request
{
"error_code" : "APIG.3325",
"error_msg" : "The API quota name already exists"
}
Status code: 401
Unauthorized
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
}
Status code: 403
Forbidden
{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
}
Status code: 404
Not Found
{
"error_code" : "APIG.3030",
"error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}
Status code: 500
Internal Server Error
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
}
Status Codes
|
Status Code |
Description |
|---|---|
|
200 |
OK |
|
400 |
Bad Request |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
|
500 |
Internal Server Error |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.