Creating an SSL Certificate¶
Function¶
This API is used to create an SSL certificate.
Calling Method¶
For details, see Calling APIs.
URI¶
POST /v2/{project_id}/apigw/certificates
Parameter  | Mandatory  | Type  | Description  | 
|---|---|---|---|
project_id  | Yes  | String  | Project ID. For details about how to obtain it, see Obtaining a Project ID.  | 
Request Parameters¶
Parameter  | Mandatory  | Type  | Description  | 
|---|---|---|---|
X-Auth-Token  | Yes  | String  | User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is a token.  | 
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.  | 
cert_content  | Yes  | String  | Certificate content.  | 
private_key  | Yes  | String  | Certificate private key.  | 
type  | No  | String  | Certificate scope. Default: global Enumeration values: 
  | 
instance_id  | No  | String  | Gateway ID. This parameter is required if type is set to instance.  | 
trusted_root_ca  | No  | String  | Trusted root certificate (CA).  | 
Response Parameters¶
Status code: 200
Parameter  | Type  | Description  | 
|---|---|---|
id  | String  | Certificate ID.  | 
name  | String  | Certificate name.  | 
type  | String  | Certificate type. 
 Enumeration values: 
  | 
instance_id  | String  | Gateway ID. 
  | 
project_id  | String  | Project ID.  | 
common_name  | String  | Domain name.  | 
san  | Array of strings  | SAN domain name.  | 
not_after  | String  | Expiration time.  | 
signature_algorithm  | String  | Signature algorithm.  | 
create_time  | String  | Creation time.  | 
update_time  | String  | Update time.  | 
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. Default: false  | 
version  | Integer  | Version.  | 
organization  | Array of strings  | Company or organization.  | 
organizational_unit  | Array of strings  | Department.  | 
locality  | Array of strings  | City.  | 
state  | Array of strings  | State or province.  | 
country  | Array of strings  | Country or region.  | 
not_before  | String  | Effective 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 message.  | 
Status code: 401
Parameter  | Type  | Description  | 
|---|---|---|
error_code  | String  | Error code.  | 
error_msg  | String  | Error message.  | 
Status code: 403
Parameter  | Type  | Description  | 
|---|---|---|
error_code  | String  | Error code.  | 
error_msg  | String  | Error message.  | 
Status code: 404
Parameter  | Type  | Description  | 
|---|---|---|
error_code  | String  | Error code.  | 
error_msg  | String  | Error message.  | 
Status code: 500
Parameter  | Type  | Description  | 
|---|---|---|
error_code  | String  | Error code.  | 
error_msg  | String  | Error message.  | 
Example Requests¶
Creating an SSL certificate
{
  "name" : "cert_demo",
  "private_key" : "'-----BEGIN PRIVATE KEY-----THIS IS YOUR PRIVATE KEY-----END PRIVATE KEY-----\\n'",
  "cert_content" : "'-----BEGIN CERTIFICATE-----THIS IS YOUR CERT CONTENT-----END CERTIFICATE-----\\n'",
  "type" : "instance",
  "instance_id" : "f0fa1789-3b76-433b-a787-9892951c620e"
}
Example Responses¶
Status code: 200
OK
{
  "id" : "a27be832f2e9441c8127fe48e3b5ac67",
  "name" : "cert_demo",
  "common_name" : "apigtest.example.com",
  "san" : [ "apigtest.example.com", "*.san.com" ],
  "version" : 3,
  "organization" : [ "XX" ],
  "organizational_unit" : [ "IT" ],
  "locality" : [ "XX" ],
  "state" : [ "XX" ],
  "country" : [ "XX" ],
  "not_before" : "2019-06-01T00:00:00Z",
  "not_after" : "2031-08-16T06:36:13Z",
  "serial_number" : "13010",
  "issuer" : [ "XXSSL Inc" ],
  "signature_algorithm" : "SHA256-RSA",
  "create_time" : "2021-08-20T02:03:53Z",
  "update_time" : "2021-08-20T02:03:53Z"
}
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.