Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
  • Blog
  • Pricing
  • Documentation
Yandex project
© 2025 Yandex.Cloud LLC
Yandex Certificate Manager
  • Getting started
    • All guides
      • Adding a certificate
      • Getting the contents of a certificate
      • Renewing a certificate
      • Editing a certificate
      • Deleting a certificate
    • Backups
    • Adding alerts for certificates
    • Configuring access to a certificate
    • Viewing operations with a certificate
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes
  • FAQ

In this article:

  • Creating a self-signed certificate file
  • Adding a self-signed custom certificate
  • Storing a certificate's private key in Yandex Lockbox
  1. Step-by-step guides
  2. Custom certificate
  3. Adding a certificate

Adding a custom certificate

Written by
Yandex Cloud
Updated at May 13, 2025
  • Creating a self-signed certificate file
  • Adding a self-signed custom certificate
  • Storing a certificate's private key in Yandex Lockbox

As an example, let's look at how to add a custom certificate using a self-signed certificate. You can look up the custom certificate requirements on the Custom certificate page.

Creating a self-signed certificate fileCreating a self-signed certificate file

To create a self-signed certificate using the OpenSSL library, run the command below:

Bash
PowerShell
openssl req -x509 -newkey rsa:4096 -nodes \
  -keyout key.pem \
  -out cert.pem \
  -days 365 \
  -subj '/CN=example.com'
openssl req -x509 -newkey rsa:4096 -nodes `
  -keyout key.pem `
  -out cert.pem `
  -days 365 `
  -subj '/CN=example.com'

Where:

  • -x509: The command will output a certificate file.
  • -newkey: A new private key file will be created.
  • rsa:4096: Algorithm and key length.
  • -nodes: Do not encrypt the private key file.
  • -keyout: Name of the file the private key is saved to.
  • -out: Certificate file name.
  • -days: Certificate validity period.
  • -subj: Certificate owner's Common Name value.

Executed with the above parameters, the req command will issue a self-signed certificate and generate the associated private key.

Adding a self-signed custom certificateAdding a self-signed custom certificate

To add a custom certificate to Certificate Manager:

Management console
CLI
Terraform
API
  1. In the management console, select the folder to add a custom certificate to.
  2. In the list of services, select Certificate Manager.
  3. Click Add certificate.
  4. In the menu that opens, select User certificate.
  5. In the window that opens, in the Name field, enter a custom certificate name.
  6. (Optional) Enter your custom certificate description in the Description field.
  7. In the Certificate field, click Add certificate.
    1. Choose how to add a certificate: File.
    2. Click Attach file.
      1. In the window that opens, select the cert.pem self-signed certificate file.
    3. Click Add.
  8. In the Private key field, click Add private key.
    1. Choose how to add a certificate: File.
    2. Click Attach file.
      1. In the window that opens, select the key.pem private key file.
    3. Click Add.
  9. Click Create.

If you do not have the Yandex Cloud (CLI) command line interface yet, install and initialize it.

The folder specified when creating the CLI profile is used by default. To change the default folder, use the yc config set folder-id <folder_ID> command. You can specify a different folder using the --folder-name or --folder-id parameter.

  1. View a description of the command:

    yc certificate-manager certificate create --help
    
  2. Run this command:

    yc certificate-manager certificate create \
      --name mycert \
      --chain mycert.pem \
      --key mykey.pem
    

    Where:

    • --name: Certificate name
    • --chain: Path to the certificate chain file.
    • --key: Path to the certificate private key file.

    Result:

    id: fpqmg47avvim********
    folder_id: b1g7gvsi89m3********
    created_at: "2020-09-15T06:54:44.916325Z"
    ...
    issued_at: "2020-09-15T06:54:44.916325Z"
    not_after: "2021-09-15T06:48:26Z"
    not_before: "2020-09-15T06:48:26Z"
    

If you do not have Terraform yet, install it and configure its Yandex Cloud provider.

  1. In the configuration file, define the parameters of the resources you want to create:

    resource "yandex_cm_certificate" "user-certificate" {
      name    = "<certificate_name>"
    
      self_managed {
        certificate = <<-EOT
                      -----BEGIN CERTIFICATE-----
                      <certificate_contents>
                      -----END CERTIFICATE-----
                      EOT
        private_key = <<-EOT
                      -----BEGIN PRIVATE KEY-----
                      <contents_of_certificate_private_key>
                      -----END PRIVATE KEY-----
                      EOT
      }
    }
    

    Where:

    • name: Certificate name
    • certificate: Certificate file contents.
    • private_key: Private key file contents.

    For more information about the yandex_cm_certificate resource parameters in Terraform, see the relevant provider documentation.

  2. Create resources:

    1. In the terminal, change to the folder where you edited the configuration file.

    2. Make sure the configuration file is correct using the command:

      terraform validate
      

      If the configuration is correct, the following message is returned:

      Success! The configuration is valid.
      
    3. Run the command:

      terraform plan
      

      The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.

    4. Apply the configuration changes:

      terraform apply
      
    5. Confirm the changes: type yes in the terminal and press Enter.

The certificate will then be added to the specified folder. You can check the new certificate and its settings using the management console or this CLI command:

 yc certificate-manager certificate get <certificate_name>

To add a certificate, use the create REST API method for the Certificate resource or the CertificateService/Create gRPC API call.

A new certificate with the Issued status will appear in the certificate list.

Storing a certificate's private key in Yandex LockboxStoring a certificate's private key in Yandex Lockbox

To avoid storing a private key of the user certificate as plain text in the Terraform configuration file, write it to Yandex Lockbox:

Terraform

If you do not have Terraform yet, install it and configure its Yandex Cloud provider.

  1. Create a secret and write the private key to it.

  2. In the configuration file, define the parameters of the resources you want to create:

    resource "yandex_cm_certificate" "example-lockbox" {
      name = "<secret_name>"
    
      self_managed {
        certificate = <<-EOT
                      -----BEGIN CERTIFICATE-----
                      <certificate_contents>
                      -----END CERTIFICATE-----
                      EOT
        private_key_lockbox_secret {
          id  = "<secret_ID>"
          key = "<secret_key>"
        }
      }
    }
    

    Where:

    • name: Yandex Lockbox secret name.
    • certificate: Certificate file contents.
    • id: ID of the Yandex Lockbox secret the private key is located in.
    • key: Key of the Yandex Lockbox secret the private key is located in.

    For more information about the yandex_cm_certificate resource parameters, see the relevant provider documentation.

  3. Create resources:

    1. In the terminal, change to the folder where you edited the configuration file.

    2. Make sure the configuration file is correct using the command:

      terraform validate
      

      If the configuration is correct, the following message is returned:

      Success! The configuration is valid.
      
    3. Run the command:

      terraform plan
      

      The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.

    4. Apply the configuration changes:

      terraform apply
      
    5. Confirm the changes: type yes in the terminal and press Enter.

The certificate will then be added to the specified folder. You can check the new certificate and its settings using the management console or this CLI command:

yc certificate-manager certificate get <certificate_name>

A new certificate with the Issued status will appear in the certificate list.

Was the article helpful?

Previous
Deleting a certificate
Next
Getting the contents of a certificate
Yandex project
© 2025 Yandex.Cloud LLC