DNS
Certbot плагин. Получить бесплатный Let’s Encrypt сертификат с помощью Certbot
Что такое Certbot плагин
Certbot плагин автоматизирует выписку Let’s Encrypt сертификатов с помощью API DNS EdgeЦентр.
Как работает. Чтобы выписать сертификат для домена, вам нужно подтвердить, что вы являетесь его владельцем. Это можно сделать несколькими способами: о них рассказывается в документации Let’s Encrypt. Распространённым способом является проверка DNS-01. Проверка требует подтверждения прав на домен с помощью создания специальной TXT-записи для этого домена.
Запустите Certbot плагин, чтобы создать запрос на выписку сертификата. Certbot автоматически создаёт TXT-записи и последовательно удаляет их, чтобы выписать, обновить или отозвать сертификаты. Обратитесь к официальной документации Certbot, чтобы узнать подробности.
Чтобы настроить и использовать Certbot плагин, вам понадобится:
- Аккаунт на платформе EdgeЦентр
-
Доменное имя, направленное на серверы имён EdgeЦентр (указаны в подсказке в вашем личном кабинете)
Как установить Certbot плагин
В этой статье дана инструкция по установке 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 плагина
Для работы с 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
Ваши учётные данные добавлены.
Как выписать сертификат с помощью Certbot плагина
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, чтобы принять условия обслуживания — начнётся выписка сертификата.
3. При успешной выписке сертификата для домена вы увидите такое сообщение:
Если вы получили ошибку 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