Получить содержимое сертификата от Let's Encrypt
Вы можете сохранить цепочку сертификатов и приватный ключ для самостоятельного использования, например, при конфигурации веб-сервера на виртуальной машине.
Чтобы получить содержимое сертификата:
-
В консоли управления
выберите каталог, в котором находится сертификат. -
В списке сервисов выберите Certificate Manager.
-
Напротив сертификата нажмите кнопку
и выберите Экспортировать сертификат.Экспортировать можно только сертификаты в статусе
Issued
. -
Выберите один из вариантов экспорта. В файле
certificate.pem
в текстовом формате в кодировке Base64 будут сохранены:-
Сертификат и цепочка сертификатов — цепочка сертификатов (корневой и конечный сертификат) и приватный ключ со стандартным обрамлением:
-----BEGIN CERTIFICATE----- MIIE5zCCA8+gAwI... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFFjCCAv6gAwIBAg... -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- MIIEvgIBADANBgk... -----END PRIVATE KEY-----
-
Сертификат без приватного ключа — цепочка сертификатов (корневой и конечный сертификат):
-----BEGIN CERTIFICATE----- MIIE5zCCA8+gAwI... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFFjCCAv6gAwIBAg... -----END CERTIFICATE-----
-
Конечный сертификат без цепочки сертификатов:
-----BEGIN CERTIFICATE----- MIIFFjCCAv6gAwIBAg... -----END CERTIFICATE-----`
-
Только приватный ключ:
-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgk... -----END PRIVATE KEY-----`
-
-
Нажмите Скачать сертификат.
Команда отобразит цепочку сертификатов и приватный ключ и сохранит содержимое в файлы --chain
и --key
соответственно.
--id
– идентификатор сертификата, должен быть указан один из флагов:--id
или--name
.--name
– название сертификата, должен быть указан один из флагов:--id
или--name
.--chain
– (опционально) файл, куда будет сохранена цепочка сертификатов в формате PEM.--key
– (опционально) файл, куда будет сохранен приватный ключ в формате PEM.
yc certificate-manager certificate content \
--id fpqcsmn76v82******** \
--chain certificate_full_chain.pem \
--key private_key.pem
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы получить содержимое пользовательского сертификата с помощью Terraform:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
data "yandex_cm_certificate_content" "cert_by_id" { certificate_id = "<идентификатор_сертификата>" } output "certificate_chain" { value = data.yandex_cm_certificate_content.cert_by_id.certificates } output "certificate_key" { value = data.yandex_cm_certificate_content.cert_by_id.private_key sensitive = true }
Где:
data "yandex_cm_certificate_content"
— описание источника данных для содержимого сертификата:certificate_id
— идентификатор сертификата.
- Блоки
output
— выходные переменныеcertificate_chain
с цепочкой сертификатов и приватным ключомcertificate_key
:value
— возвращаемое значение.sensitive
— пометить как конфиденциальные данные.
Более подробную информацию о параметрах источника данных
yandex_cm_certificate_content
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Terraform создаст все требуемые ресурсы. Чтобы проверить результат, выполните команды:
-
Получить цепочку сертификата:
terraform output certificate_chain
-
Получить значение приватного ключа:
terraform output -raw certificate_key
-
Чтобы получить содержимое сертификата, воспользуйтесь методом REST API get для ресурса CertificateContent или вызовом gRPC API CertificateContentService/Get.
Примечание
Для чтения содержимого сертификата сервисному аккаунту необходимо выдать роль certificate-manager.certificates.downloader
.