[Yandex Cloud documentation](../../../index.md) > [Yandex Certificate Manager](../../index.md) > [Step-by-step guides](../index.md) > Custom certificate > Renewing a certificate

# Renewing a custom certificate

Certificate Manager does not manage [custom certificates](../../concepts/imported-certificate.md). To make your certificate continuously available to your resources, make sure to renew it on time.

To get a new version of a custom certificate:

{% list tabs group=instructions %}

- Management console {#console}

  1. In the [management console](https://console.yandex.cloud), select the [folder](../../../resource-manager/concepts/resources-hierarchy.md#folder) you added the certificate to.
  1. Navigate to **Certificate Manager**.
  1. Select the certificate you need to renew.
  1. Click ![arrows-rotate](../../../_assets/console-icons/arrows-rotate-right.svg) **Renew certificate**.
  1. In the window that opens, click **Add certificate** in the **Certificate** field.
     1. Choose how to add it: `File` or `Text`.
     1. Click **Add**.
  1. In the **Intermediate certificate chain** field, click **Add chain**.
     1. Choose how to add it: `File` or `Text`.
     1. Click **Add**.
  1. In the **Private key** field, click **Add private key**.
     1. Choose how to add it: `File` or `Text`.
     1. Click **Add**.
  1. Click **Update**.

- CLI {#cli}

  If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../cli/quickstart.md#install).

  The folder used by default is the one specified when [creating](../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. View the command description:

     ```bash
     yc certificate-manager certificate update --help
     ```

  1. View the list of certificates:

     ```bash
     yc certificate-manager certificate list
     ```

     Result:

     ```text
     +----------------------+--------+-------------+---------------------+----------+--------+
     |          ID          |  NAME  |   DOMAINS   |      NOT AFTER      |   TYPE   | STATUS |
     +----------------------+--------+-------------+---------------------+----------+--------+
     | fpqmg47avvim******** | mycert | example.com | 2021-09-15 06:48:26 | IMPORTED | ISSUED |
     +----------------------+--------+-------------+---------------------+----------+--------+
     ```

  1. Run this command:

     ```bash
     yc certificate-manager certificate update \
       --id fpqmg47avvim******** \
       --chain myupdatedcert.pem \
       --key myupdatedkey.pem
     ```

     Where:
     * `--id`: ID of the certificate you need to renew.
     * `--chain`: Path to the new certificate chain file.
     * `--key`: Path to the certificate's new private key file.

     Result:

     ```text
     id: fpqmg47avvim********
     folder_id: b1g7gvsi89m3********
     created_at: "2020-09-15T06:54:44.916Z"
     ...
     issued_at: "2020-09-15T08:23:50.147668Z"
     not_after: "2021-09-15T08:12:57Z"
     not_before: "2020-09-15T08:12:57Z"
     ```

- Terraform {#tf}

  If you do not have Terraform yet, [install it and configure the Yandex Cloud provider](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), [authenticate](../../../terraform/authentication.md) using the appropriate method.

  1. Open the Terraform configuration file and edit the `certificate` and `private_key` certificate properties:

     {% cut "Example of a certificate description in the Terraform configuration" %}

     ```hcl
     ...
     resource "yandex_cm_certificate" "imported-certificate" {
       name        = "my-certificate"
       description = "this is a test certificate"

       self_managed {
         certificate = <<-EOT
                       -----BEGIN CERTIFICATE-----
                       MIIF...
                       -----END CERTIFICATE-----
                       EOT
         private_key = <<-EOT
                       -----BEGIN PRIVATE KEY-----
                       MIIJ...
                       -----END PRIVATE KEY-----
                       EOT
       }
     }
     ...
     ```

     {% endcut %}

  1. Apply the changes:

     1. In the terminal, navigate to the configuration file directory.
     1. Make sure the configuration is correct using this command:
     
        ```bash
        terraform validate
        ```
     
        If the configuration is valid, you will get this message:
     
        ```bash
        Success! The configuration is valid.
        ```
     
     1. Run this command:
     
        ```bash
        terraform plan
        ```
     
        You will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
     1. Apply the configuration changes:
     
        ```bash
        terraform apply
        ```
     
     1. Type `yes` and press **Enter** to confirm the changes.

  You can check the edited certificate using the [management console](https://console.yandex.cloud) or this [CLI](../../../cli/index.md) command:

  ```bash
  yc certificate-manager certificate get <certificate_name>
  ```

- API {#api}

  To renew a certificate, use the [update](../../api-ref/Certificate/update.md) REST API method for the [Certificate](../../api-ref/Certificate/index.md) resource or the [CertificateService/Update](../../api-ref/grpc/Certificate/update.md) gRPC API call.

{% endlist %}