Updated on 2026-01-29 GMT+08:00

Add a Server Certificate

Function

This API is used by an application to add a server certificate to the platform. The server certificate quota is 2.

Debugging

You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.

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

    iotda:servercertificate:create

    Write

    -

    g:EnterpriseProjectId

    -

    -

URI

POST /v5/iot/{project_id}/server-certificates

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Parameter description: project ID. For details, see Obtaining a Project ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

Instance-Id

No

String

Parameter description: instance ID. Unique identifier of each instance in the physical multi-tenant scenario. Mandatory for professional editions and recommended in other cases. Log in to the IoTDA console and choose Overview in the navigation pane to view the instance ID. For details, see Viewing Instance Details.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

certificate_pem

Yes

String

Parameter description: certificate content, in PEM format.

Value: valid certificate content in PEM format. The value can contain up to 65,535 characters.

private_key

Yes

String

Parameter description: certificate private key.

Value: valid private key content. The value can contain up to 10,240 characters.

private_key_password

No

String

Parameter description: private key password.

Value: a string of up to 64 characters, only allowing letters.

Response Parameters

Status code: 201

Table 4 Response body parameters

Parameter

Type

Description

server_certificate_id

String

Unique ID.

common_name

String

Parameter description: common name of the certificate.

effective_date

String

Time when the certificate starts to take effect. The value is in the format of yyyyMMdd'T'HHmmss'Z', for example, 20151212T121212Z.

expiry_date

String

Time when the certificate expires. The value is in the format of yyyyMMdd'T'HHmmss'Z', for example, 20151212T121212Z.

certificate_owner

String

Certificate owner.

certificate_issuer

String

Certificate issuer.

Example Requests

Adds a server certificate.

POST https://{endpoint}/v5/iot/{project_id}/server-certificates

{
  "certificate_pem" : "-----BEGINCERTIFICATE-----\nMIID2TCCAsGgAwIBAgIJAOEDEgVdVMn9MA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD\nVQQGEwJDTjERMA8GA1UECAwIR3VhbmRvbmcxETAPBgNVBAcMCFNoZW56aGVuMQ8w\nDQYDVQQKDAZIdWF3ZWkxDDAKBgNVBAsMA2lvdDESMBAGA1UEAwwJMTIzNDU2Nzg5\nMRowGAYJKoZIhvcNAQkBFgtkamthQHFxLmNvbTAeFw0xOTEyMTkxMzE1MjZaFw0y\nMjEwMDgxMzE1MjZaMIGCMQswCQYDVQQGEwJDTjERMA8GA1UECAwIR3VhbmRvbmcx\nETAPBgNVBAcMCFNoZW56aGVuMQ8wDQYDVQQKDAZIdWF3ZWkxDDAKBgNVBAsMA2lv\ndDESMBAGA1UEAwwJMTIzNDU2Nzg5MRowGAYJKoZIhvcNAQkBFgtkamthQHFxLmNv\nbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM72QUzoadvLfxGjt3UF\noZ4MJbblqnRbouO4KpOVHBXyS2yQVl4CWWMhLh4pp2efNUSqKuXHjY3r68PquyNn\nYk8zO59zVc7JHvjGkBvo7DgPRAhEKPLJIpRzkmlCBbxwTNCjc3FovGb/sHHNlpGn\ncCKUzMfPGNZuBiuemskuEXL/eMHxDPbXYWn4Wq0wt+28PKUL5jybY7nsXSNnmAPF\nTO0CAmq0meUukubT/jHDCQ78ihQ/iqw1RNq88aCqRleoHiGg5nWkjL+05GXqUrqV\nVnZNL+YqcXzuVMs5XgyhNM2AsuH2g3D8ZuF6Dj9qY1n/v/Cp/DGpxP3A74SlplnF\nD/0CAwEAAaNQME4wHQYDVR0OBBYEFAVPWVtpTdO6KQnmVrrNlMguWNR7MB8GA1Ud\nIwQYMBaAFAVPWVtpTdO6KQnmVrrNlMguWNR7MAwGA1UdEwQFMAMBAf8wDQYJKoZI\nhvcNAQELBQADggEBAE40ViqK+UaEn++Xq6f4Cmeg3JqYHu47v9RIAASNihYRBQ/r\n3RE7Af3GqjIO5nMJJuCMzdcoAU8N9KwkgXD+GLR9fYLEoEmq5CrhgaGDsCi85vCs\nmWhj5z8r5TG207xpmvH2KT447dnG+chMBE594ma85dCv+0mCDrqNToElipgT8+rY\nAYVClnIt3kbsTg1vSRNHadd+TpgRVxJZBF0fHcCAyc/2f3UJgPYNWShIetHM6BdI\n3fZ4H+eeHPjagm5kzmffli1cUv2/N+1hKUvcI4uFCqEwZRFtp90RyIbxUfQwi+Cs\nXVnwV+BZS5qD9bTcfxZMXhuVRwO/5xWYMYPN1uY=\n-----END CERTIFICATE-----",
  "private_key" : "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAxSzvkmyd7QBjQhLTod9HK+fGVgoJWKAiecwYFqiitFEXR1v8\n6cwqi4WGNsrn/HAaeD/dezw98BBGUzfHL6tl7J5tr/CoC88P34ZeDwoDJb184kl5\nKOJMXOB5126g3i58w6AYi3MNNuswBTbt3JP+x3TmbCyzYJ6cN1ASGPJNHhWFLu4B\nOqrkKL0umzWzzj8CYDoMd4JaChYjdyhuyLaHvcWV1VHlOsdUeE+L4kIDilxqubnd\ncLtcn/kQDf/DMUOchFaZB4c096ksAoZEZxeoCQI2DzT2lQImgVo+XtseTNJ5BC2b\npp457J1X7pJq5QOt1bJ0Dxu9ENvNCy9qCMIm4wIDAQABAoIBAG4OGtp7zdpPcRec\nMowTeEJFaCr2Byl0mEmrZXagQdCrwnaOHajR0J13teY3cy0v1VZxL0pt4ZRxQQ+J\n/p/Y51cfRtIBXYrZ1F5LPYzfZcpW7bHQmNP9G+prURayJRBemj0Gyyxq12Fj/LWs\nZy/LW1YxJbwTZzvyy/cDtlY+SFUVaSQ2Nu+C450jmBnwLN5YqM2m77X1yvIdD5Y/\n3KjCmhHdrY2ulO3dptmI3Ju3e7GACy0VJstcKlaOcpFFpVh9lC1DMvGE3dtLzXln\nBQVMwTZl9RKikLAsyIcNaTVnhb61QmLT/4S6Tdafxr11JWPEw6ilVozeZOnnuPGO\no02FpyECgYEA/vcg8iUGx7ftV/c3ePnCLiXH8HGZzC5OUjSuu6n15iF0f6WP56rQ\nirX1mkYwXg7MbmSTikqwcbjBuoPBwYZnXTPpH3K2VTG44B+AC/VnHdTqWYPhq8ug\naeUuVkZYiopCKMaOpFCgiSo3YbLi22t8oXXWeGWNOys6vIfBZv9UT70CgYEAxfnF\npYmFaI38kDLJInVFb5qMjcEP4OpryoSgs8J2mMoWePOu0x8FOkxqwLqjGr2ETsPy\nCK62webYw7I3ITqkZU8zRm6phQuaS5IJK7ubnHYNMx+xcFWsssHrzMEjLnbSCM0D\nwQ0x/gPHl+okRe33FQO51jEQ+OxJglNlWxpi6x8CgYEAzAVArcMHK+V33L4L+5gP\n1BGTbknZAdPEBG/3ql+UTzRSHpqDDqRW/8ge4fZsWbeJyoRcs3qUuktXakJoVs2Q\nBLq3PtzyHjYNc/qA4hDbFLn9VOf9OxVUJaiobY0Y6LM9wZcxKTcDXv8TFfCpK19V\neXXryqeoXcJ328jd7+c8thkCgYEAvRByU0tI73eheig180VhQVqr3fhA7L+Snz4X\npnQRBIsB+RJmo9JdELbHwDS87R2ODBaOvwHzIKwP2JwKkB5Lv0BqrFmkZJ2XBZJ6\nVZx92GbY5jjfIHOBUNlnEgxkR8xLewInEqdCVd5QL2D4sRu3ugbr44TKO56T+PUh\nt2Y0j2sCgYBpMV9Z1WWdqm7sR/Mh41kLmEdbANgElIyMellEqvCUE7Dh5b44VVkj\nDJkKWwfJtjUaJSd6SHzNTtvF3RAjTcp4kxaVqkMuK11w+bQNpJKk3lGvyCC5eH2U\nVwS2lC+WRlApFQBxdNu5Hf7gvlSW6E2yplBdHj9TED/WUpFNFazG0w==\n-----END RSA PRIVATE KEY-----"
}

Example Responses

Status code: 201

Created

{
  "server_certificate_id" : "60f8c49169d4840337930a4b",
  "common_name" : "iotda",
  "effective_date" : "20251212T121212Z",
  "expiry_date" : "20301212T121212Z",
  "certificate_owner" : "CN=Huawei Cloud Core Network Product CA, O=Huawei, C=CN",
  "certificate_issuer" : "CN=Huawei Cloud Core Network Product CA, O=Huawei, C=CN"
}

Status Codes

Status Code

Description

201

Created

401

Unauthorized

403

Forbidden

400

Bad Request

500

Internal Server Error

Error Codes

See Error Codes.