Перейти к содержанию

Руководство по настройке Let’s Encrypt SSL

В этом руководстве вы узнаете, как создать бесплатный SSL-сертификат Let’s Encrypt для вашего веб-сайта, который будет автоматически обновляться. Этот процесс требует минимальной настройки с вашей стороны.

Прежде всего, вам нужен удаленный сервер, на котором развернуто ваше веб-приложение. У вас может быть Nginx, Apache или любой другой веб-сервер. Это руководство будет относиться к Nginx или Apache; если вы используете другой веб-сервер, вы можете перейти к certbot документации и получить конкретные инструкции для вашей платформы.

Установка

Нам нужно установить snapd, менеджер пакетов, который позволит нам установить certbot от Let’s Encrypt для автоматического обновления. Выполните следующие команды в своем терминале.

sudo apt-get update
sudo apt-get install snapd

sudo snap install core; snap refresh core

Теперь, когда snapd установлен, мы можем установить certbot, который мы будем использовать для получения и установки SSL-сертификата.

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Выполните следующую команду, чтобы убедиться, что certbot установлен.

certbot --version

Получение SSL-сертификата

Теперь, когда certbot установлен, нам нужно получить SSL-сертификат. Команда запросит у вас адрес электронной почты и доменное имя, для которого вы хотите получить сертификат SSL. Вы также можете указать несколько доменных имен, если хотите защитить несколько доменов с помощью одного сертификата.

Вы можете запустить следующую команду для интерактивного режима, где вам будет задано несколько вопросов для получения SSL-сертификата.

# Replace --nginx with --apache if you are using Apache
sudo certbot --nginx

Вам будет предложено ввести адрес электронной почты и согласиться с условиями обслуживания. Вам также будет предложено ввести доменное имя, для которого вы хотите получить сертификат SSL. Вы также можете указать несколько доменных имен, если хотите защитить несколько доменов с помощью одного сертификата.

Кроме того, вы можете запустить следующую команду, чтобы получить сертификат SSL в неинтерактивном режиме, где вам не будут задавать вопросы. Это полезно, если вы хотите автоматизировать процесс.

sudo certbot --apache \
  --agree-tos \
  -m you@email.com \
  --no-eff-email \
  --redirect \
  --domains news.roadmap.sh

Эта команда получит SSL-сертификат для указанного доменного имени, установит его для вас и перенаправит HTTP-трафик на HTTPS. SSL-сертификат действителен в течение трех месяцев, после чего срок его действия истекает.

Автоматическое продление SSL-сертификата

SSL-сертификат, созданный с помощью certbot, действителен в течение 3 месяцев; после чего нужно обновить сертификат. Certbot автоматически настраивает продление за вас, так что вам не о чем беспокоиться.

Чтобы обновление работало, вам необходимо настроить cronjob или системный таймер. Чтобы проверить, активно ли автоматическое продление, вы можете использовать один из двух способов:

  • Проверьте cronjob, чтобы узнать, зарегистрировано ли задание cron обновления certbot, выполнив следующую команду:
sudo crontab -l
  • Если вы не нашли зарегистрированное задание cron, проверьте таймер systemd, выполнив следующую команду.
sudo systemctl list-timers

Должна быть строка, включающая certbot.timer. Этот таймер настроен на запуск два раза в день — один раз утром и один раз вечером — для автоматического обновления SSL-сертификата по истечении срока его действия.

Итак, как только вы убедились, что таймер автообновления настроен, давайте проверим, работает ли само автообновление. Давайте сделаем это дальше.

Проверка работы автоматического продления

Чтобы проверить, работает ли автоматическое обновление, вы можете запустить следующую команду, предоставленную certbot, для пробного запуска процесса обновления.

sudo certbot renew --dry-run

Это не приведет к обновлению сертификата, но покажет вам результат процесса обновления.

Заключение

Попробуйте посетить свой веб-сайт с помощью HTTPS, и вы должны увидеть значок замка, показывающий, что соединение защищено. Кроме того, при посещении HTTP-версии вашего сайта вы должны быть перенаправлены на HTTPS-версию.

Вот и все! Вы успешно получили и установили SSL-сертификат Let’s Encrypt на свой веб-сервер. Вы также настроили автоматическое продление, чтобы вам не приходилось беспокоиться о его продлении вручную.