Добавить сертификат от Let's Encrypt®
Сертификат из Certificate Manager можно использовать только в указанных сервисах Yandex Cloud.
Чтобы добавить новый сертификат от Let's Encrypt®:
-
В консоли управления
выберите каталог, в который будет добавлен сертификат. -
В списке сервисов выберите Certificate Manager.
-
Нажмите кнопку Добавить сертификат.
-
В открывшемся меню выберите Сертификат от Let's Encrypt.
-
В открывшемся окне в поле Имя введите имя сертификата.
-
(Опционально) В поле Описание введите описание сертификата.
-
В поле Домены введите список доменов, для которых нужно выпустить сертификат.
Имена доменов могут содержать маску, например
*.example.com
. В этом случае при выборе типа проверки прав на домен необходимо будет выбратьDNS
. Подробнее см. в разделе Проверка прав на домен. -
Выберите тип проверки прав на домен:
DNS
илиHTTP
. -
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды:
yc certificate-manager certificate request --help
-
Выполните команду:
yc certificate-manager certificate request \ --name mymanagedcert \ --domains example.com
Где:
--name
— имя сертификата.--domains
— домены сертификатов.
Результат:
id: fpq6gvvm6piu******** folder_id: b1g7gvsi89m3******** created_at: "2020-09-15T08:49:11.533771Z" ... - example.com status: VALIDATING updated_at: "2020-09-15T08:49:11.533771Z"
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле Terraform параметры ресурса, который необходимо создать:
resource "yandex_cm_certificate" "le-certificate" { name = "<имя_сертификата>" domains = ["<домен>"] managed { challenge_type = "<тип_проверки>" } }
Где:
domains
— список доменов, для которых нужно создать сертификат.challenge_type
— тип проверки прав на домен, которую нужно пройти владельцу домена. Возможные значения:DNS_CNAME
— необходимо создать DNS-запись в формате CNAME с указанным значением. Рекомендуемый способ для автоматического продления сертификата.DNS_TXT
— необходимо создать DNS-запись в формате TXT с указанным значением.HTTP
— необходимо поместить указанное значение в указанный URL.
Подробную информацию о параметрах ресурса
yandex_cm_certificate
см. в документации провайдера Terraform . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
После этого в указанном каталоге будет создан сертификат. Проверить появление сертификата и его настройки можно в консоли управления
yc certificate-manager certificate get <имя_сертификата>
Чтобы добавить сертификат, воспользуйтесь методом REST API requestNew для ресурса Certificate или вызовом gRPC API CertificateService/RequestNew.
В списке сертификатов появится новый сертификат со статусом Validating
. Этот статус означает, что запрос на выпуск сертификата от Let's Encrypt® создан, и для его успешной обработки вам необходимо пройти процедуру проверки прав на домены.
Примечание
Чтобы DNS-проверка прав на домен по записи CNAME
прошла успешно, для поддомена _acme-challenge
проверяемого доменного имени не должно быть создано никаких ресурсных записей, кроме записи CNAME
. Например, для имени _acme-challenge.example.com.
должна существовать только CNAME-запись и не должно быть TXT-записи.