Безлимитные аккаунты
Подробнее
Журнал Gerwin
Журнал Gerwin
Журнал
7 декабря 2025 г.

Бесплатный SSL на VPS: Как настроить Let's Encrypt за 5 минут

Руководство по выпуску SSL-сертификатов Let's Encrypt с помощью клиента Certbot. Примеры команд для Ubuntu и CentOS
Получение SSL-сертификата от Let's Encrypt на VPSПолучение SSL-сертификата от Let's Encrypt на VPS

Получение SSL-сертификата от Let's Encrypt на VPS

SSL-сертификат (TLS-сертификат) – это специальный цифровой файл, который «связывает» сайт с криптографическим ключом и позволяет устанавливать защищённое HTTPS-соединение между сервером и посетителем.

Наличие сертификата необходимо для шифрования данных (например, логинов, паролей, личной информации), даже если на сайте не вводятся особо важные данные. С ним в адресной строке браузера появляется «зелёный замок», обозначающий, что соединение защищено.

Let's Encrypt – это бесплатный автоматизированный открытый центр сертификации (Certificate Authority, CA), созданный некоммерческой организацией ISRG. С помощью Let's Encrypt можно бесплатно получить SSL-сертификат сроком на 90 дней. Для этого нужно подтвердить владение доменом через специальный протокол АСМЕ. Let's Encrypt предлагает готовые инструменты (АСМЕ-клиенты), которые автоматически выполняют выпуск и установку сертификатов без простоя сайта.

Необходимые условия

Перед получением сертификата убедитесь, что у вас есть всё необходимое:

  • Доменные имена. Убедитесь, что ваш домен (и, при необходимости, www-поддомен) корректно указывает на IP вашего VPS через А-запись (и/или АААА для IPv6). Без этой проверки сертификат выпустить нельзя.
  • Сервер под управлением Linux (VPS). Требуется доступ к терминалу сервера (SSH) с правами администратора (root). На VPS должен быть установлен веб-сервер (например, Apache или Nginx) либо возможность его временно остановить для прохождения валидации.
  • Установленный АСМЕ-клиент Certbot. Рекомендуется использовать Certbot – официальный клиент Let's Encrypt, упрощающий процесс выпуска и автоматизации сертификатов.
  • Работающий веб-сервер на порту 80. Let's Encrypt проверяет домен через HTTP. Если порт 80 занят, Certbot может временно остановить веб-сервер или использовать веб-рут-плагин.

Установка Certbot

Чтобы получить сертификат, установим Certbot и плагин под ваш веб-сервер. На примере Debian/Ubuntu и CentOS:

  • Debian/Ubuntu:
    sudo apt update
    sudo apt install certbot python3-certbot-apache # для Apache
    sudo apt install certbot python3-certbot-nginx  # для Nginx
    
  • CentOS 7:
    sudo yum install epel-release
    sudo yum install certbot certbot-apache # для Apache
    sudo yum install certbot certbot-nginx  # для Nginx
    

Certbot и его плагины автоматически добавят в систему сервис (systemd-timer или cron-задачу) для периодической проверки и обновления сертификатов.

Выпуск SSL-сертификата

После установки Certbot перейдём к получению сертификата. Рассмотрим два основных сценария:

  • Apache: Выпустим сертификат для домена example.com и его www-поддомена:
    sudo certbot --apache -d example.com -d www.example.com
    
  • Nginx: Аналогично для Nginx:
    sudo certbot --nginx -d example.com -d www.example.com
    

Ключ -d указывает домены, для которых нужен сертификат. Сertbot автоматически найдёт и изменит конфигурацию виртуального хоста (с помощью плагинов --apache или --nginx) и перезапустит веб-сервер для включения TLS.

При первом запуске Certbot попросит указать действующий email и принять условия использования. Рекомендуется использовать реальный email – на него придут уведомления о продлении сертификата и возможных проблемах.

Затем Certbot свяжется с Let's Encrypt, который отправит вашему серверу специальный запрос (НТТР-челлендж) для проверки владения доменом. После успешной проверки Certbot завершит выпуск и предложит варианты настройки:

Please choose whether or not to redirect HTTP traffic to HTTPS...
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Выберите нужный вариант (обычно выбирают Redirect, чтобы все запросы шли по HTTPS). Certbot автоматически допишет в конфиг веб-сервера необходимые директивы для перенаправления с HTTP на HTTPS.

После успешного выпуска Certbot покажет сообщение о сохранённых файлах сертификата:

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on YYYY-MM-DD. To obtain a new version of this
certificate in the future, simply run certbot again...

SSL-сертификат и ключ будут сохранены в каталоге /etc/letsencrypt/live/your-domain/. Теперь при обращении к сайту по адресу https://example.com браузер должен показывать зелёный замок, подтверждающий защищённое соединение.

Автоматическое обновление сертификата

Сертификаты Let's Encrypt действуют 90 дней, поэтому важно автоматизировать их продление. Certbot по умолчанию настраивает проверку и обновление сертификатов:

  • На Debian/Ubuntu устанавливается systemd-таймер, который дважды в день проверяет все сертификаты и автоматически продлевает те, у которых до окончания действия осталось меньше 30 дней. Проверить, что таймер активен, можно командой:
    sudo systemctl status certbot.timer
    

    Она покажет, что таймер запущен и ожидает следующий запуск.
  • На CentOS/RHEL может потребоваться ручная настройка. Откройте crontab (sudo crontab -e) и добавьте задачу, например:
    30 4 * * * /usr/bin/certbot renew --quiet
    

    Это запустит проверку и продление сертификатов ежедневно в 4:30 утра.

Для уверенности раз в месяц проверяйте обновление вручную командой:

sudo certbot renew --dry-run

В случае успеха вы увидите сообщение «certbot dry-run was successful». Если в процессе продления возникает ошибка, Let's Encrypt отправит уведомление на указанный email.

Важно: Certbot обновляет сертификаты только если до их окончания осталось < 30 дней. Поэтому его таймер или cron можно запускать хоть ежедневно.

Пример работы (Ubuntu + Nginx)

  1. Убедитесь, что домен example.com и www.example.com указывают на IP вашего VPS (через А-записи).
  2. Подключитесь по SSH к серверу под root или привилегированным пользователем.
  3. Установите Certbot и плагин для Nginx:
    sudo apt update
    sudo apt install certbot python3-certbot-nginx
    
  4. Выпустите сертификат:
    sudo certbot --nginx -d example.com -d www.example.com
    
  5. Укажите email и согласитесь с условиями. Certbot автоматически проверит домен и настроит Nginx.
  6. При запросе выберите редирект на HTTPS.
  7. После завершения проверьте сайт в браузере по адресу https://example.com. Замок в адресной строке означает успешную установку.

Дополнительные возможности и советы

  • Wildcard-сертификаты. Let's Encrypt поддерживает wildcard SSL (например, *.example.com), но для них обязательно используется DNS-валидация. При получении wildcard-сертификата Certbot предложит добавить ТХТ-запись в DNS вашего домена. Это полезно, если нужно защитить сразу все поддомены (например, mail.example.com, shop.example.com и т.д.).
  • Панели управления. Многие панели (ISPmanager, cPanel, VestaCP) имеют встроенную поддержку Let's Encrypt. Например, в VestaCP достаточно включить опцию «Let's Encrypt» при добавлении домена, и сертификат выпустится автоматически за несколько минут. Панель сама создаст cron-задачу для продления.
  • Остановка сервера при standalone. Если на сервере нет веб-сервера, можно запустить Certbot в standalone-режиме (он поднимет временный веб-сервер на порту 80). При этом убедитесь, что к нему нет доступа (остановите другие сервисы на 80) и выполните:
    sudo certbot certonly --standalone -d example.com -d www.example.com
    
    После получения сертификат нужно будет вручную прописать в конфиг веб-сервера. Этот способ подходит, если другой вариант невозможен.
  • Плагины Webroot. Если не хотите останавливать веб-сервер, можно использовать плагин --webroot, который создаёт файл проверки прямо в корне сайта (обычно .well-known):
    sudo certbot certonly --webroot -w /var/www/html -d example.com
    
  • Мониторинг и резервное копирование. Следите за датой окончания сертификатов. Хотя Certbot обновляет их автоматически, полезно настроить мониторинг или напоминания. Также рекомендуется создавать резервные копии важного содержимого (/etc/letsencrypt/), чтобы восстановить сертификаты при необходимости.
Аккаунт Gerwin PRO

Безлимитные генерации, безусловная скидка 40% на пополнение баланса и доступ к полному функционалу сервиса