Top.Mail.Ru

DNS

Certbot плагин. Получить бесплатный Let’s Encrypt сертификат с помощью Certbot

Certbot плагин автоматизирует выписку Let’s Encrypt сертификатов с помощью API DNS EdgeЦентр.

Как работает. Чтобы выписать сертификат для домена, вам нужно подтвердить, что вы являетесь его владельцем. Это можно сделать несколькими способами: о них рассказывается в документации Let’s Encrypt. Распространённым способом является проверка DNS-01. Проверка требует подтверждения прав на домен с помощью создания специальной TXT-записи для этого домена.

Запустите Certbot плагин, чтобы создать запрос на выписку сертификата. Certbot автоматически создаёт TXT-записи и последовательно удаляет их, чтобы выписать, обновить или отозвать сертификаты. Обратитесь к официальной документации Certbot, чтобы узнать подробности.

Чтобы настроить и использовать Certbot плагин, вам понадобится:

  • Аккаунт на платформе EdgeЦентр
  • Доменное имя, направленное на серверы имён EdgeЦентр (указаны в подсказке в вашем личном кабинете)

В этой статье дана инструкция по установке Certbot плагина для Ubuntu 22.10. Если вы используете другую ОС, команды могут отличаться.

1. Подключитесь к вашему серверу по SSH.

2. Скачайте и установите обновления для устаревших пакетов. Так, вы предотвратите возможные ошибки при установке плагина.

sudo apt update

3. Установите pip3 Python-библиотеку, если она отсутствует. Она необходима для установки Certbot.

sudo apt install python3-pip

4. Установите пакеты для Certbot:

sudo apt install certbot

5. Установите Certbot плагин, используя команду:

pip install certbot-dns-ecenter

Если вы видите сообщение Successfully installed …, значит, установка завершена.

Certbot плагин. Получить бесплатный Let’s Encrypt сертификат с помощью Certbot

Для работы с Certbot плагином вам нужны учётные данные API DNS EdgeЦентр. Без этих данных Certbot плагин не выпишет сертификат для вашего домена.

1. Перейдите в домашнюю директорию home/user_name:

cd ~/

2. Создайте файл ecenter.ini (название может быть любым) с помощью nano или другого текстового редактора. Например:

nano ecenter.ini

3. Добавьте в этот файл ваши учётные данные. Вы можете использовать два типа данных:

  • (рекомендуемый) Перманентный API-токен

  • Email-адрес и пароль, используемые для авторизации в аккаунте EdgeЦентр

Мы рекомендуем использовать перманентный API-токен, так как это более подходящий тип данных для интеграции через API. Чтобы получить токен, следуйте инструкции «Как создать перманентный API-токен».

Добавьте учётные данные в файл ecenter.ini.

Добавить перманентный API-токен:

dns_ecenter_apitoken = 0123456789abcdef...

где 0123456789abcdef... — ваш API-токен.

Добавить email-адрес и пароль:

dns_ecenter_email = edge_center_user@example.com dns_ecenter_password = 0123456789abcdef

где edge_center_user@example.com — ваш email-адрес, а 0123456789abcdef — ваш пароль.

4. Запретите доступ к файлу ecenter.ini, чтобы защитить свои учётные данные от других пользователей. Для этого выполните команду:

chmod 600 ecenter.ini

Ваши учётные данные добавлены.

1. Запустите команду, чтобы получить сертификат:

certbot certonly --authenticator dns-ecenter --dns-ecenter-credentials=./ecenter.ini --dns-ecenter-propagation-seconds=80 -d 'example.com' --key-type ecdsa --logs-dir=. --config-dir=. --work-dir=.

где:

  • example.com — домен, для которого нужно выписать Let’s Encrypt сертификат. Можно также указать значение *.example.com, чтобы выписать wildcard сертификат для example.com и всех его поддоменов.

  • --dns-ecenter-propagation-seconds=80 — время в секундах, необходимое на распространение DNS-записи. Мы рекомендуем использовать значение 80 секунд и больше. Если запись не успеет распространиться, вы получите ошибку.

  • --key-type ecdsa — используемый алгоритм шифрования и подписи. В примере используется алгоритм ECDSA. Если вы хотите использовать RSA алгоритм, установите значение --key-type rsa.
    В чём разница? Алгоритм ECDSA основан на эллиптических кривых, а RSA — на натуральных числах. Алгоритм RSA работает медленнее, так как для него используются большие биты ключей (3000-4000 бит). Для ECDSA нужна меньшая длина ключа (300 бит), поэтому алгоритм работает быстрее.

2. Далее система попросит ввести ваш email-адрес. По почте она сможет оповестить вас о срочных обновлениях сертификатов или отправить оповещения безопасности.

Введите ваш email-адрес. Если вы этого не сделаете, появится ошибка An email address or --register-unsafely-without-email must be provided.

Введите Y, чтобы принять условия обслуживания — начнётся выписка сертификата.

Certbot плагин. Получить бесплатный Let’s Encrypt сертификат с помощью Certbot

3. При успешной выписке сертификата для домена вы увидите такое сообщение:

Certbot плагин. Получить бесплатный Let’s Encrypt сертификат с помощью Certbot

Если вы получили ошибку Some challenges have failed, попробуйте увеличить время распространения для DNS:

--dns-ecenter-propagation-seconds=80

где 80 — значение в секундах.

Повторите команду из шага 1, указав новое значение:

certbot certonly --authenticator dns-ecenter --dns-ecenter-credentials=./ecenter.ini --dns-ecenter-propagation-seconds=80 -d 'example.com' --key-type ecdsa --logs-dir=. --config-dir=. --work-dir=.

Если проблема не решилась, убедитесь, что ваш домен направлен на серверы имён EdgeЦентр, используя команду dig или онлайн сервисы. Направьте его на наши серверы имён и подождите 24 часа для обновления DNS. Затем повторите запрос на выписку сертификата.

Срок действия Let’s Encrypt сертификата — 90 дней. Certbot плагин обновит сертификат для вашего домена самостоятельно, но вы можете сделать это с помощью команды:

certbot renew

Мы используем cookie, чтобы сайт стал лучше для вас.