Выпуск сертификата Let's Encrypt

SSL-сертификат — это технология, которая обеспечивает шифрование данных между сайтом и его посетителями. Она включает протокол HTTPS и добавляет в адресной строке браузера знакомый значок замка, подтверждая, что соединение безопасно.

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

Ниже мы рассмотрим, как выпустить такой сертификат на серверах с операционными системами Linux.


Что понадобится для выпуска

Прежде чем приступать к выпуску сертификата, убедитесь, что выполнены следующие условия:

  1. У вас есть доступ к серверу: для Linux** - SSH-доступ с правами суперпользователя (sudo).

  2. Доменное имя привязано к серверу: В DNS-настройках вашего домена должна быть создана A-запись, которая указывает на IP-адрес вашего сервера. Проверить это можно командой ping ваш_домен.ru.

  3. Открыт порт 80: Let's Encrypt проверяет владение доменом, отправляя запрос на ваш сервер по стандартному веб-порту (80). Убедитесь, что он не заблокирован файрволом.


Инструкция для Linux (Ubuntu, Debian, CentOS и др.)

На Linux-системах для работы с Let's Encrypt используется удобная утилита Certbot. Она автоматически выполняет все необходимые действия: получает сертификат, настраивает ваш веб-сервер и даже ставит задачу на автоматическое обновление.

Установка Certbot

Способ установки зависит от вашего дистрибутива:

  • Для Debian/Ubuntu: sudo apt install certbot python3-certbot-nginx
  • Для CentOS/RHEL: sudo dnf install certbot python3-certbot-nginx

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

Certbot может работать в разных режимах. Рассмотрим самый простой для реализации вариант.

Если у вас установлен веб-сервер Nginx, Certbot может всё сделать за вас.

```bash
sudo certbot --nginx
```

Утилита проанализирует конфигурацию вашего веб-сервера, найдёт домены и предложит список сайтов, для которых можно выпустить сертификат. Вам останется только следовать инструкциям на экране: выбрать нужный домен и согласиться с условиями. Certbot сам получит сертификат и настроит HTTPS.

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

Сертификаты Let's Encrypt действительны 90 дней. Certbot автоматически создаёт задачу в системном планировщике (cron), которая будет продлевать сертификаты за вас.

Вы можете проверить, что автоматическое обновление работает корректно, с помощью команды:

sudo certbot renew --dry-run

Если команда завершилась без ошибок, значит, всё настроено правильно.


Важные моменты и решение проблем

  • Ограничения (Rate Limits): У Let's Encrypt есть ограничения на количество запросов. Не пытайтесь выпускать сертификат много раз подряд, если что-то не получается. Сначала найдите и устраните причину ошибки.
  • Wildcard-сертификаты (*.domain.ru): Let's Encrypt позволяет выпускать сертификаты для всех поддоменов сразу (например, *.domain.ru). Однако их получение сложнее и требует подтверждения через DNS, а не через HTTP.
  • Если что-то пошло не так:
    • Проверьте, что ваш домен действительно указывает на IP-адрес сервера.
    • Убедитесь, что файрвол или другой брандмауэр не блокирует входящие подключения на порт 80.
    • Изучите лог-файлы утилиты — в них обычно содержится подробная информация об ошибке.