Получение SSL-сертификата от Let's Encrypt и настройка HTTPS
Для настройки подключения по HTTPS необходим SSL-сертификат, их выпуском занимаются центры сертификации, эта услуга платная, цены начинаются от 1-2т.р. и более за сертификат на одно доменное имя на один год.
Альтернативой платным сертификатам, может стать бесплатные сертификаты от центра сертификации Let's Encrypt.
На данные момент большое количество сайтов используют сертификаты от Let's Encrypt, в том числе и stepik.org.
Автоматизированное получение и продление сертификатов от Let's Encrypt осуществляется с помощью Certbot.
Приступим к его установке, для начала обновим списки пакетов:
apt update -y
А затем установим Certbot, выполняем:
apt install certbot python3-certbot-nginx -y
И сразу запускаем процесс получения сертификата:
certbot --nginx -d django-blog.my-domain.ru
Примечание: django-blog.my-domain.ru необходимо заменить на ваше доменное имя.
Вводим свой email адрес:
Соглашаемся с условиями предоставления услуг Let's Encrypt, вводим y(yes):
Сертификат получен, и поддержка HTTPS была автоматически добавлена в файл mysite_03.conf.
Проверяем результат, откроем наш сайт в браузере: https://<имя вашего домена>:
Наш сайт стал доступен по HTTPS.
Сертификаты от Let's Encrypt выдаются на 90 дней. Поэтому нам нужно убедиться, что эти сертификаты будут успешно обновляться автоматически, без дополнительного вмешательства.
Сначала проверим, что служба автоматической проверки сертификатов certbot.timer запущена и работает:
systemctl status certbot.timer
Служба работает, завершаем просмотр нажатием клавиши Q.
Теперь проверим, в холостом режиме(--dry-run), процедуру продления сертификатов:
certbot renew --dry-run
Сертификат был успешно "продлён", значит и в дальнейшем с этим не возникнет проблем, сертификат будет продлеваться автоматически.