Автоматическая выдача SSL-сертификатов через Certbot (Let's Encrypt)
Дата публикации: 24.04.2026

Автоматическая выдача SSL-сертификатов через Certbot (Let's Encrypt)

ccb9a536


Автоматическая выдача SSL-сертификатов через Certbot (Let’s Encrypt): Защищаем сайт за 10 минут

Представьте: вы запустили сайт, трафик растёт, но браузеры пугают посетителей предупреждением "Не защищено". Клиенты уходят, конверсия падает, а вы теряете деньги. Всё потому, что у сайта нет SSL-сертификата — цифрового "паспорта", который шифрует данные между пользователем и сервером.

Хорошая новость: получить такой сертификат бесплатно и автоматически можно за 5–10 минут с помощью Certbot от Let’s Encrypt. Нет нужды платить за сертификаты или разбираться в ручной настройке — всё сделает робот.

В этом уроке вы научитесь: ✅ Устанавливать Certbot на сервер (Ubuntu/Debian, CentOS). ✅ Получать бесплатные SSL-сертификаты для одного или нескольких доменов. ✅ Настраивать автоматическое продление (чтобы сертификат не истёк через 90 дней). ✅ Решать типичные ошибки (например, если домен не проходит проверку).



1. Почему Let’s Encrypt и Certbot — лучший выбор для веб-мастера

1.1. Что такое SSL-сертификат и зачем он нужен

SSL-сертификат — это цифровая подпись, которая:

  • Шифрует данные между браузером и сервером (пароли, платежи, личная информация).
  • Подтверждает подлинность сайта (что это действительно ваш сайт, а не фишинговая копия).
  • Повышает доверие пользователей и поисковых систем (Google понижает в ранжировании сайты без HTTPS).

Пример:

  • http://vash-sayt.ru → Браузер показывает "Не защищено", пользователи уходят.
  • https://vash-sayt.ru → Зелёный замочек, доверие, высокая конверсия.

1.2. Почему Let’s Encrypt, а не платные сертификаты?

Критерий Let’s Encrypt (Certbot) Платные сертификаты (например, Comodo, DigiCert)
Стоимость Бесплатно От $10 до $300 в год
Срок действия 90 дней (автоматически продляется) 1–2 года (нужно следить за истечением)
Скорость выдачи Мгновенно (1–2 минуты) От нескольких часов до суток
Поддержка Wildcard Да (для *.domain.com) Да, но дорого
Автоматизация Полная (один раз настроил — работает сам) Часто требует ручного продления

Вывод: Для 99% проектов (блоги, лендинги, арбитражные страницы) Let’s Encrypt — оптимальный выбор.

1.3. Как работает Certbot?

Certbot — это робот, который:

  1. Проверяет, что вы действительно владеете доменом (через специальные файлы или DNS-записи).
  2. Запрашивает сертификат у Let’s Encrypt.
  3. Устанавливает сертификат на ваш сервер (Nginx, Apache).
  4. Настраивает автоматическое продление (чтобы не забыть через 90 дней).

Аналогия: Представьте, что вы хотите получить пропуск в закрытый клуб. Вместо того чтобы стоять в очереди и заполнять анкеты, вы отправляете робота, который всё делает за вас — приносит пропуск и обновляет его каждые 3 месяца.



2. Подготовка сервера: что нужно сделать до установки Certbot

2.1. Требования к серверу

Что нужно Почему это важно
Доменное имя (например, example.com) Certbot проверяет, что домен принадлежит вам.
Доступ по SSH (root или sudo) Нужно устанавливать программы и редактировать конфиги.
Открытый 80-й порт (HTTP) Certbot временно размещает файл для проверки домена.
Веб-сервер (Nginx или Apache) Certbot автоматически настраивает SSL для него.

⚠️ Важно:

  • Если у вас облачный хостинг (AWS, DigitalOcean, VPS от Reg.ru), убедитесь, что фаервол (например, UFW или iptables) не блокирует 80-й порт.
  • Если используете Cloudflare, временно отключите проксирование (серый облачко → выключить).

2.2. Проверка домена перед установкой

Перед тем как запускать Certbot, убедитесь, что:

  1. Домен привязан к IP-адресу сервера (проверьте через ping example.com).
  2. На сервере работает веб-сервер (Nginx/Apache) и он отдаёт хотя бы пустую страницу по HTTP.

Как проверить?

curl -I http://example.com

Если видите ответ вроде HTTP/1.1 200 OK — всё хорошо. Если Connection refused — веб-сервер не запущен.



3. Установка Certbot и получение SSL-сертификата

3.1. Установка Certbot на Ubuntu/Debian

1. Обновите пакеты:

sudo apt update && sudo apt upgrade -y

2. Установите Certbot и плагин для Nginx/Apache:

  • Для Nginx:
    sudo apt install certbot python3-certbot-nginx -y
  • Для Apache:
    sudo apt install certbot python3-certbot-apache -y

3.2. Установка Certbot на CentOS/RHEL

1. Установите репозиторий EPEL (если ещё не установлен):

sudo yum install epel-release -y

2. Установите Certbot:

  • Для Nginx:
    sudo yum install certbot python3-certbot-nginx -y
  • Для Apache:
    sudo yum install certbot python3-certbot-apache -y

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

Самый простой способ (для одного домена):

sudo certbot --nginx -d example.com

или для Apache:

sudo certbot --apache -d example.com

Что будет происходить:

  1. Certbot проверяет, что домен доступен и веб-сервер работает.
  2. Спрашивает ваш email (на него будут приходить уведомления об истечении сертификата).
  3. Соглашаетесь с правилами Let’s Encrypt (нажмите A для согласия).
  4. Выбираете, нужно ли перенаправлять HTTP → HTTPS (рекомендуется выбрать 2, чтобы всё автоматически редиректилось).

Готово! Теперь ваш сайт доступен по https://example.com с зелёным замочком.

3.4. Получение сертификата для нескольких доменов

Если у вас несколько доменов (например, example.com и www.example.com), используйте:

sudo certbot --nginx -d example.com -d www.example.com

*3.5. Получение Wildcard-сертификата (для .example.com)**

Wildcard-сертификат покрывает все поддомены (например, app.example.com, blog.example.com).

Шаги:

  1. Добавьте DNS-запись для подтверждения:
    sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com
  2. Certbot выдаст TXT-запись, которую нужно добавить в DNS вашего домена.
  3. После добавления записи подождите 5–10 минут (пока DNS обновится) и нажмите Enter.
  4. Сертификат будет сохранён в /etc/letsencrypt/live/example.com/.

⚠️ Важно:

  • Wildcard не поддерживает автоматическую установку в Nginx/Apache (нужно вручную прописывать пути к сертификатам в конфигах).
  • Для автоматического продления Wildcard-сертификатов нужен DNS-провайдер с API (например, Cloudflare, AWS Route 53).


4. Настройка автоматического продления сертификатов

SSL-сертификаты Let’s Encrypt действуют 90 дней, но Certbot может автоматически продлевать их каждые 60 дней.

4.1. Проверка текущего статуса продления

sudo certbot renew --dry-run

Эта команда симулирует продление и показывает, есть ли ошибки.

4.2. Настройка cron для автоматического продления

Certbot уже добавляет задачу в cron, но можно проверить:

sudo crontab -l

Должна быть строка вроде:

0 0 * * * /usr/bin/certbot renew --quiet

Это означает, что каждый день в 00:00 Certbot проверяет, не истёк ли сертификат, и продлевает его при необходимости.

4.3. Что делать, если автоматическое продление не работает?

  1. Проверьте логи:
    sudo tail -f /var/log/letsencrypt/letsencrypt.log
  2. Убедитесь, что порт 80 открыт (Certbot использует его для проверки).
  3. Если используете Wildcard, настройте DNS-плагин (например, для Cloudflare):
    sudo certbot certonly --dns-cloudflare -d *.example.com

    (Потребуется ввести API-ключ Cloudflare.)



5. Типичные ошибки и их решение

Ошибка Причина Решение
"Failed to connect to example.com" Порт 80 закрыт фаерволом или домен не привязан к серверу. Проверьте sudo ufw allow 80 и ping example.com.
"DNS problem: NXDOMAIN" Домен не существует или не привязан к IP. Проверьте DNS-записи (A-запись должна указывать на IP сервера).
"Too many certificates already issued" Превышен лимит (20 сертификатов в неделю на домен). Подождите неделю или используйте один сертификат для нескольких доменов.
"Certbot couldn’t find Nginx/Apache" Веб-сервер не установлен или не запущен. Установите Nginx/Apache и проверьте sudo systemctl status nginx.
"Challenge failed for domain" Certbot не смог разместить файл для проверки. Убедитесь, что корневая директория веб-сервера доступна для записи.

Совет: Если что-то пошло не так, используйте флаг --debug для детальных логов:

sudo certbot --nginx -d example.com --debug


6. Дополнительные фишки для продвинутых пользователей

6.1. Принудительный редирект HTTP → HTTPS в Nginx

Если Certbot не настроил редирект автоматически, добавьте в конфиг Nginx (/etc/nginx/sites-available/example.com):

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Затем перезагрузите Nginx:

sudo systemctl reload nginx

6.2. Использование Certbot с Docker

Если ваш сервер работает в Docker, можно использовать отдельный контейнер для Certbot:

docker run -it --rm --name certbot \
    -v "/etc/letsencrypt:/etc/letsencrypt" \
    -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
    certbot/certbot certonly --webroot -w /var/www/html -d example.com

6.3. Резервное копирование сертификатов

Сертификаты хранятся в /etc/letsencrypt. Чтобы сделать бэкап:

sudo tar -cvzf letsencrypt_backup.tar.gz /etc/letsencrypt


Практика для закрепления

Упражнение 1. Установка Certbot на тестовый домен

  1. Создайте поддомен (например, test.yourdomain.com) и привяжите его к серверу.
  2. Установите Certbot и получите сертификат для этого поддомена.
  3. Проверьте, что сайт открывается по https://test.yourdomain.com.

Упражнение 2. Настройка Wildcard-сертификата

  1. Получите Wildcard-сертификат для *.yourdomain.com.
  2. Настройте Nginx так, чтобы он использовал этот сертификат для всех поддоменов.
  3. Проверьте работу на двух поддоменах (например, app.yourdomain.com и blog.yourdomain.com).

Упражнение 3. Диагностика ошибок

Ситуация: При попытке получить сертификат вы видите ошибку:

Failed to connect to yourdomain.com for challenge

Вопросы:

  1. Какие возможные причины этой ошибки?
  2. Какие команды вы выполните для диагностики?
  3. Как исправить проблему?

Упражнение 4. Автоматизация с DNS-плагином

  1. Настройте DNS-плагин для Cloudflare (или другого провайдера).
  2. Получите Wildcard-сертификат без ручного добавления TXT-записи.
  3. Проверьте, что сертификат успешно продлевается автоматически.

Упражнение 5. Оптимизация безопасности

  1. Проверьте свой сертификат на SSL Labs.
  2. Исправьте предупреждения (например, слабые протоколы TLS 1.0/1.1).
  3. Настройте HTTP/2 и OCSP Stapling для ускорения работы сайта.


Итоги урока

✅ Вы научились устанавливать Certbot на любой сервер (Ubuntu, CentOS). ✅ Можете получать SSL-сертификаты для одного домена, нескольких доменов или Wildcard. ✅ Настроили автоматическое продление, чтобы не вспоминать о сертификатах каждые 90 дней. ✅ Умеете диагностировать и исправлять типичные ошибки. ✅ Знаете продвинутые фишки (Docker, бэкапы, оптимизация Nginx).

Следующий шаг:

  • Настройте SSL для всех своих проектов.
  • Проверьте скорость сайта до и после перехода на HTTPS (например, в PageSpeed Insights).
  • Автоматизируйте развёртывание новых сайтов с SSL (например, через скрипты или Ansible).

Вопросы? Пишите в комментариях — разберём любые сложности! 🚀


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы