Настроить проверку SSL-сертификатов Let’s Encrypt®
Чтобы ваш сайт был доступен по HTTPS, вы можете использовать SSL-сертификат, например бесплатный от Центра Сертификации Let’s Encrypt®.
Сертификаты Let’s Encrypt® действительны в течение 90 дней с момента выпуска. Для выпуска сертификата нужно подтвердить право на доменное имя — пройти проверку. Каждые 60 дней сертификаты нужно обновлять — также проходить проверку.
Есть два типа проверок: HTTP (через размещение файла на сервере) и DNS (через TXT-запись). В инструкции описан способ проверки через DNS-01.
Вы можете выпустить сертификат Let’s Encrypt® через Менеджер секретов. Проверка и перевыпуск таких сертификатов будет происходить автоматически.
Как работает проверка домена через DNS-01
Проверка DNS-01 требует подтверждения права на домен с помощью специальной TXT-записи для доменного имени. DNS-01 разрешает выпускать Wildcard-сертификаты.
Со стороны Let’s Encrypt® токен передаётся ACME-клиенту. ACME-клиент создаёт содержимое TXT-записи на основе токена и ключа аккаунта вида:
_acme-challenge.yourdomain.com TXT <token>
Затем Let’s Encrypt® запрашивает TXT-запись в DNS-зоне доменного имени. Если запись добавлена, и значения совпадут — сертификат будет выпущен.
Если ваше доменное имя делегировано на NS-серверы Selectel (Selectel является вашим DNS-провайдером), вы можете подтвердить право на домен с помощью услуги DNS-хостинг — настроить автоматический выпуск и обновление сертификата с помощью скриптов или выполнить ручной выпуск в панели управления.
Автоматический выпуск сертификата
- acme.sh
- lego
- dehydrated
Подробнее в документации acme.sh.
Передайте ключ API в переменную
SL_Key
— значение будет сохранено в папке ~/.acme.sh/account.conf:export SL_Key="<token>"
Выпустите сертификат:
acme.sh --issue --dns dns_selectel -d <yourdomain.com> -d <www.yourdomain.com>
Подробнее в документации lego.
Передайте ключ API в переменную
SELECTEL_API_TOKEN
:export SELECTEL_API_TOKEN=<token>
Выпустите сертификат:
lego --email email@yourdomain.com --dns selectel --domains <yourdomain.com> run
Подробнее в документации dehydrated.
Передайте ключ API в переменную
SELECTEL_TOKEN
:export SELECTEL_TOKEN=<token>
Выпустите сертификат — запустите скрипт hook.sh.
Ручной выпуск сертификата
Выпустите сертификат:
acme.sh --issue -d yourdomain.com --dns \
--yes-I-know-dns-manual-mode-enough-go-ahead-pleaseДобавьте TXT-запись. При обновлении сертификата запись также нужно обновлять вручную.
Подождите около минуты, чтобы DNS-записи обновились. Введите команду:
acme.sh --renew -d <yourdomain.com> \
--yes-I-know-dns-manual-mode-enough-go-ahead-please