# ModifyDomainCertificate

## 1. API Description

This interface is used to modify the SSL certificate of an accelerated domain name.

#### Preparation

* Create Certificate: If the certificate to be modified has not been uploaded, you need to first call [`CreateCertificate`](https://github.com/zenlayer/zenlayercloud-api-doc-en/blob/main/zenlayer-global-accelerator/certificate/createcertificate.md) to upload the certificate and key.

{% hint style="info" %}
**Notes**

* This interface is asynchronous. After the interface returns successfully, the operation of creating or modifying the accelerated domain has not yet been completed. During this period, the status of the accelerated domain will be `Deploying`. You can query the status of the accelerated domain by calling the `DescribeCdnDomains` interface. If the domain status changes from `Deploying` (deploying) to `Deployed` (deployed successfully), the deployment is successful; `Failed` indicates that the configuration failed.
  {% endhint %}

## 2. Request Parameters

The following request parameter list includes only the necessary parameters for the interface

| Parameter Name | Required | Type   | Description                                                                                                                                                                                      |
| -------------- | -------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| domainId       | Yes      | String | Accelerated domain Id                                                                                                                                                                            |
| certificateId  | Yes      | String | <p>Certificate Id<br>This parameter can be obtained from the <code>certificateId</code> field in the return value of <a href="../certificate/describecertificates">DescribeCertificates</a>.</p> |

## 3. Output Parameters

| Parameter Name | Type   | Description                                                                                 |
| -------------- | ------ | ------------------------------------------------------------------------------------------- |
| requestId      | String | Unique request ID, returned with each request. Provide this requestId when locating issues. |

## 4. Code Example

{% tabs %}
{% tab title="Example" %}

1. **Modify the SSL certificate of the accelerated domain**

```json
POST / HTTP/1.1
Host: console.zenlayer.com/api/v2/cdn
Content-Type: application/json
X-ZC-Action: ModifyDomainCertificate
<Common Request Params>

Request:
{
    "domainId": "domainIdxxxxx",
    "certificateId": "f0864***66c6fa"
}


Response:
{
    "requestId": "TEEFDCA5B-76FB-4E91-A18E-DF7F5D2CE41F",
}
```

{% endtab %}
{% endtabs %}

## 5. Error Codes

The following includes error codes encountered in business logic. For other error codes, see [Common Error Codes](https://docs.console.zenlayer.com/api-reference/api-introduction/instruction/commonerrorcode).

| HTTP Status Code | Error Code                            | Description                                       |
| ---------------- | ------------------------------------- | ------------------------------------------------- |
| 404              | INVALID\_DOMAIN\_NOT\_FOUND           | The specified accelerated domain does not exist.  |
| 403              | DOMAIN\_OPERATION\_NO\_PERMISSION     | Operation denied due to lack of permission.       |
| 400              | CERT\_NOT\_MATCH\_DOMAIN\_OR\_EXPIRED | Certificate expired or does not match the domain. |
| 404              | INVALID\_CERTIFICATE\_NOT\_FOUND      | The specified certificate was not found.          |
