Updated on 2025-12-26 GMT+08:00

Modifying an SSL Certificate

Function

This API is used to modify an SSL certificate.

Calling Method

For details, see Calling APIs.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.

  • If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
  • If you are using identity policy-based authorization, the following identity policy-based permissions are required.

    Action

    Access Level

    Resource Type (*: required)

    Condition Key

    Alias

    Dependencies

    apig:certificate:update

    Write

    instance

    g:ResourceTag/<tag-key>

    -

    apig:instance:get

URI

PUT /v2/{project_id}/apigw/certificates/{certificate_id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain it, see Obtaining a Project ID.

certificate_id

Yes

String

Certificate ID.

Request Parameters

Table 2 Request header 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.

Table 3 Request body parameters

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 type.

  • instance: Gateway certificate

  • global: Global certificate

Default: global

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).

algorithm_type

No

String

Certificate algorithm type:

  • RSA

  • ECC

  • SM2

cert_content_sign

No

String

Signature certificate content. This parameter is mandatory only when algorithm_type is set to SM2.

Maximum: 8092

private_key_sign

No

String

Signature private key content. This parameter is mandatory only when algorithm_type is set to SM2.

Maximum: 8092

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

id

String

Certificate ID.

name

String

Certificate name.

type

String

Certificate type.

  • global: Global certificate.

  • instance: Gateway certificate.

instance_id

String

Gateway ID.

  • If type is set to global, the default value is common.

  • If type is set to instance, a gateway ID is displayed.

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

algorithm_type

String

Certificate algorithm type:

  • RSA

  • ECC

  • SM2

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

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 401

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 403

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 404

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 500

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Requests

Modifying 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'"
}

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",
  "algorithm_type" : "RSA"
}

Status code: 400

Bad Request

{
  "error_code" : "APIG.3325",
  "error_msg" : "The dictionary 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.3093",
  "error_msg" : "App quota c900c5612dbe451bb43cbcc49cfaf2f3 does not exist"
}

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.