Установка Let’s Encrypt Wildcard SSL для ОС Ubuntu, Debian и панели управления Hestia CP
Руководство по установке сертификата SSL
Let’s Encrypt – некоммерческий удостоверяющий центр, который предоставляет бесплатные X.509 сертификаты для TLS шифрования с помощью автоматизированного процесса, направленного на замену сложного ручного создания, проверки, подписи, установки и обновления сертификатов для защищённых веб-сайтов.
Недавно Let’s Encrypt представил Wildcard-сертификат для вашего домена, теперь можно использовать SSL без подстановочных знаков для домена и нескольких поддоменов с одним сертификатом.
Это руководство работает с Linux-дистрибутивами, такими как CentOS, Ubuntu, Debian. Установка показана на примере Ubuntu. Для CentOS используйте пакетный менеджер yum вместо apt-get.
Устанавливаем скрипт acme.sh:
cd /root
sudo apt-get install socat git
git clone https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install
После установки будет создано задание в cron для автоматического продления сертификата. Проверить можно командой:
crontab -l
Устанавливаем центр сертификации Let's Encrypt по умолчанию:
./acme.sh --set-default-ca --server letsencrypt
Подаем запрос на выпуск сертификата:
./acme.sh --issue -d testfrnx.ru -d *.testfrnx.ru --dns --force --yes-I-know-dns-manual-mode-enough-go-ahead-please
Примечание
Вместо testfrnx.ru
укажите свой домен.
Скрипт сгенерирует 2 TXT записи, которые нужно добавить в панель DNS:
[Tue Jun 8 14:23:11 MSK 2021] Domain: '_acme-challenge.testfrnx.ru'
[Tue Jun 8 14:23:11 MSK 2021] TXT value: 'GCgAc4Q1Ur4Iv5A-SFhaZ6as-IyuIbfcm7FnUOq3Qxs'
[Tue Jun 8 14:23:12 MSK 2021] Domain: '_acme-challenge.testfrnx.ru'
[Tue Jun 8 14:23:12 MSK 2021] TXT value: 'dA6AcK4oR2VOIuD_i7zdNn6RZXXBJORpZWlhDOmk96A'
При добавлении записи в конце имени следует добавить точку, например:
TXT record _acme-challenge.testfrnx.ru.
value: "dA6AcK4oR2VOIuD_i7zdNn6RZXXBJORpZWlhDOmk96A"
TXT record _acme-challenge.testfrnx.ru.
value: "GCgAc4Q1Ur4Iv5A-SFhaZ6as-IyuIbfcm7FnUOq3Qxs"
Проверяем обновление записей в DNS:
dig txt +short _acme-challenge.testfrnx.ru
"GCgAc4Q1Ur4Iv5A-SFhaZ6as-IyuIbfcm7FnUOq3Qxs"
"dA6AcK4oR2VOIuD_i7zdNn6RZXXBJORpZWlhDOmk96A"
После обновления DNS возобновляем выдачу сертификата:
./acme.sh --renew -d testfrnx.ru -d *.testfrnx.ru --dns --force --yes-I-know-dns-manual-mode-enough-go-ahead-please
[Tue Jun 8 15:26:45 MSK 2021] Renew: 'testfrnx.ru'
[Tue Jun 8 15:26:46 MSK 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Tue Jun 8 15:26:46 MSK 2021] Multi domain='DNS:testfrnx.ru,DNS:*.testfrnx.ru'
[Tue Jun 8 15:26:54 MSK 2021] Verify finished, start to sign.
[Tue Jun 8 15:26:55 MSK 2021] Downloading cert.
[Tue Jun 8 15:26:56 MSK 2021] Cert success.
Ваши сертификаты будут сохранены в:
/root/.acme.sh/testfrnx.ru/testfrnx.ru.cer
/root/.acme.sh/testfrnx.ru/testfrnx.ru.key
/root/.acme.sh/testfrnx.ru/ca.cer
/root/.acme.sh/testfrnx.ru/fullchain.cer
Добавление сертификатов в Hestia CP.
Примечание
Панель Hestia CP можно установить как самостоятельно, так и заказать её установку на наших VPS или выделенных серверах.
Переименовываем сертификаты:
mv /root/.acme.sh/testfrnx.ru_ecc/ca.cer /root/.acme.sh/testfrnx.ru_ecc/testfrnx.ru.ca
mv /root/.acme.sh/testfrnx.ru_ecc/fullchain.cer /root/.acme.sh/testfrnx.ru_ecc/testfrnx.ru.crt
Добавляем сертификаты домену:
v-add-web-domain-ssl USER testfrnx.ru /root/.acme.sh/testfrnx.ru_ecc/
USER
— пользователь, которому принадлежит доменtestfrnx.ru
— ваш домен/root/.acme.sh/testfrnx.ru_ecc/
— путь к сертификатам
Внимание
Если домену ранее был добавлен сертификат, обновите его на новый:
v-update-web-domain-ssl USER testfrnx.ru /root/.acme.sh/testfrnx.ru_ecc/
Добавление Wildcard SSL-сертификата для поддомена.
Копируем сертификат:
cp /home/USER/conf/web/testfrnx.ru/ssl/testfrnx.ru.ca /home/USER/conf/web/testfrnx.ru/ssl/sub.testfrnx.ru.ca
cp /home/USER/conf/web/testfrnx.ru/ssl/testfrnx.ru.crt /home/USER/conf/web/testfrnx.ru/ssl/sub.testfrnx.ru.crt
cp /home/USER/conf/web/testfrnx.ru/ssl/testfrnx.ru.key /home/USER/conf/web/testfrnx.ru/ssl/sub.testfrnx.ru.key
Добавляем сертификаты поддомену:
v-add-web-domain-ssl USER sub.testfrnx.ru /home/USER/conf/web/testfrnx.ru/ssl/
Удаляем временные файлы:
rm /home/USER/conf/web/testfrnx.ru/ssl/sub.testfrnx.ru.ca
rm /home/USER/conf/web/testfrnx.ru/ssl/sub.testfrnx.ru.crt
rm /home/USER/conf/web/testfrnx.ru/ssl/sub.testfrnx.ru.key
Чтобы обновить сертификаты, вам нужно выполнить эту команду через 90 дней:
./acme.sh --issue -d testfrnx.ru -d *.testfrnx.ru --dns --force --yes-I-know-dns-manual-mode-enough-go-ahead-please
Настроить автоматическое обновление let’s encrypt certs можго с помощью задания Cron, добавьте этот ежедневный cron для проверки автообновления:
0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
Примечание
Проверить корректность установки сертификата можно с помощью сервиса проверки SSL.
Помощь
Если у вас возникли трудности или необходима помощь, создайте запрос в службу поддержки через тикет-систему, и мы с радостью поможем.