Установка бесплатного SSL-сертификата Let's Encrypt входит в бесплатную первоначальную настройку и происходит автоматически, если доменное имя в названии сервера существует и направлено на его ip-адрес.
1. Проверьте, что домены направлены на правильные ip
Если сертификат по той или иной причине не установился, его можно установить вручную с помощью утилиты certbot. Для этого проверьте, что имена доменов, которые Вы хотите защитить, направлены на ip-адрес VPS. Сделать это можно с помощью стороннего инструмента.
2. Выпустите сертификат
Для этого подключитесь к Вашему серверу по SSH и выполните инструкции описанные ниже.
Перед установкой сертификата необходимо установить пакет python-certbot-nginx
необходимого для работы certbot с веб-сервером nginx. В зависимости от дистрибутива, имя пакета немного отличается.
Для установки пакета в CentOS:
yum install python-certbot-nginx
Для установки пакета в Debian:
apt install python-certbot-nginx
Для установки пакета в Ubuntu:
apt install python3-certbot-nginx
Запускаем следующую команду, которая установит непосредственно сам сертификат. После её выполения, в конфигурационном файле nginx будут автоматически указаны пути до .pem
и .key
файлов, настроен HTTPS:
certbot --nginx -d имядомена.com -d www.имядомена.com
В дистрибутивах Debian\Ubuntu Вам будет предложено настроить 301-й редирект. Нажать 1 - отказаться, нажать 2 - согласиться:
Далее, certbot самостоятельно установит сертификат, сгенерирует файлы первичного ключа и создаст цепочку сертификатов в формате .pem. После чего, внесет изменения в конфигурационный файл веб-сервера, настроит 301-й редирект с HTTP на HTTPS (если Вы выбрали данный пункт при установке сертификата в Debian\Ubuntu):
Сертификат автоматически обновляется заданием в systemd
в дистрибутивах Debian/Ubuntu.
Проверить добавилось оно или нет, Вы можете данной командой:
systemctl list-timers
Данное задание выполняет проверку сертификата каждые 12 часов. Если проверкой будет обнаружено, что у сертификата истекает срок, то он будет продлен.
Также, задание на обновление задается в cron
по следующему пути: /etc/cron.d/certbot
. Задание в systemd
будет иметь приоритет над заданием в cron
и будет отключено по умолчанию.
В дистрибутиве CentOS задание будет прописано в /etc/crontab
. В таймере systemd
оно не добавляется по умолчанию.
После установки сертификата и проверки заданий на автопродление, Вы можете проверить автообновление сертификата в тестовом режиме:
certbot renew --dry-run
Если автопродление настроено, то Вы увидите следующий вывод:
Проверить корректность работы сертификата можно с помощью сторонних инструментов - ssllabs и sslshopper.com.