Adding a custom certificate
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 file
To create a self-signed certificate using the OpenSSL
library, run the command below:
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 certificate
To add a custom certificate to Certificate Manager:
- In the management console
, select the folder to add a custom certificate to. - In the list of services, select Certificate Manager.
- Click Add certificate.
- In the menu that opens, select User certificate.
- In the window that opens, in the Name field, enter a custom certificate name.
- (Optional) Enter your custom certificate description in the Description field.
- In the Certificate field, click Add certificate.
- Choose how to add a certificate:
File
. - Click Attach file.
- In the window that opens, select the
cert.pem
self-signed certificate file.
- In the window that opens, select the
- Click Add.
- Choose how to add a certificate:
- In the Private key field, click Add private key.
- Choose how to add a certificate:
File
. - Click Attach file.
- In the window that opens, select the
key.pem
private key file.
- In the window that opens, select the
- Click Add.
- Choose how to add a certificate:
- Click Create.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID>
command. You can also set a different folder for any specific command using the --folder-name
or --folder-id
parameter.
-
View a description of the command:
yc certificate-manager certificate create --help
-
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.
-
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 namecertificate
: 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 . -
Create resources:
-
In the terminal, go to the directory where you edited the configuration file.
-
Make sure the configuration file is correct using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
You will see a detailed list of resources. No changes will be made at this step. Terraform will show any errors found in your configuration.
-
Apply the changes:
terraform apply
-
Type
yes
and press Enter to confirm the changes.
-
The certificate will then be added to the specified folder. You can check the new certificate and its settings using the management console
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 Lockbox
To avoid storing a private key of the user certificate as plain text in the Terraform configuration file, write it to Yandex Lockbox:
If you do not have Terraform yet, install it and configure its Yandex Cloud provider.
-
Create a secret and write the private key to it.
-
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 . -
Create resources:
-
In the terminal, go to the directory where you edited the configuration file.
-
Make sure the configuration file is correct using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
You will see a detailed list of resources. No changes will be made at this step. Terraform will show any errors found in your configuration.
-
Apply the changes:
terraform apply
-
Type
yes
and press Enter to confirm the changes.
-
The certificate will then be added to the specified folder. You can check the new certificate and its settings using the management console
yc certificate-manager certificate get <certificate_name>
A new certificate with the Issued
status will appear in the certificate list.