MAATRIX / Блог / Как установить и настроить Let's Encrypt SSL на VPS

Как установить и настроить Let's Encrypt SSL на VPS

Как установить и настроить Let's Encrypt SSL на VPS

MAATRIX

Сайт без HTTPS браузеры помечают как небезопасный, а данные между пользователем и сервером идут открытым текстом. Let's Encrypt даёт бесплатные SSL-сертификаты, а certbot ставит и продлевает их автоматически. Разберём, как установить и настроить Let's Encrypt SSL на VPS: получить сертификат для Nginx, настроить редирект на HTTPS и автопродление, чтобы про сертификаты можно было забыть. Всё бесплатно и занимает несколько минут.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое Let's Encrypt и как это работает

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

Работает это через проверку, что домен действительно ваш. Утилита certbot запрашивает сертификат, а центр Let's Encrypt проверяет контроль над доменом одним из способов: чаще всего размещая временный файл на вашем сервере (проверка HTTP-01) или через запись в DNS (DNS-01). Убедившись, что домен под вашим контролем, центр выдаёт сертификат сроком на 90 дней. Короткий срок компенсируется автоматическим продлением — в этом вся суть подхода Let's Encrypt: не разовая покупка, а постоянная автоматика. Такой подход надёжнее ручного: человек забывает продлить сертификат раз в год, а автоматика не забывает никогда.

Подготовка: домен и веб-сервер

Прежде чем получать сертификат, нужны две вещи. Первая — домен, A-запись которого направлена на IP вашего VPS. Без корректной DNS-записи Let's Encrypt не сможет проверить контроль над доменом, потому что не найдёт ваш сервер. Проверьте, что домен резолвится на нужный адрес, и дайте DNS время распространиться, если только что меняли запись. Изменения в DNS не мгновенны и могут расходиться по серверам имён от нескольких минут до часов в зависимости от TTL записи.

Вторая — работающий веб-сервер. Разберём на примере Nginx как самого популярного. Установите его и убедитесь, что он отвечает по HTTP.

apt update
apt install -y nginx
systemctl enable --now nginx

Настройте виртуальный хост для вашего домена в конфиге Nginx, указав server_name с именем домена. Certbot будет опираться на эту настройку, чтобы понять, для какого домена выпускать сертификат и куда его прописать. Убедитесь, что по HTTP сайт открывается, и что порт 80 открыт в фаерволе — он нужен для проверки владения доменом.

ufw allow 'Nginx Full'

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Установка certbot

Certbot — официальный клиент Let's Encrypt, который автоматизирует получение и настройку сертификатов. Для Nginx есть специальный плагин, который сам правит конфиг веб-сервера. Установите certbot и плагин.

apt install -y certbot python3-certbot-nginx
certbot --version

Существуют разные способы установки certbot, включая snap, но пакет из репозитория проще и достаточно свеж для большинства задач. Плагин python3-certbot-nginx умеет автоматически находить нужный виртуальный хост, вписывать в него пути к сертификату и настраивать HTTPS — это избавляет от ручной правки конфигов и типичных ошибок. Именно поэтому связка certbot с плагином Nginx самый удобный путь для веб-сервера. Для Apache есть аналогичный плагин, а если вы используете другой веб-сервер, certbot умеет получать сертификат отдельно, не трогая конфиг, режимом certonly.

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

Теперь запросите сертификат. Команда certbot с плагином nginx проведёт вас через процесс: спросит домены, электронную почту для важных уведомлений и согласие с условиями, проверит контроль над доменом и настроит Nginx.

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

Укажите все нужные домены и поддомены через -d. Certbot запросит почту — на неё придут предупреждения о скором истечении, если автопродление вдруг сломается, поэтому указывайте рабочий адрес. После успешной проверки certbot автоматически впишет сертификат в конфиг Nginx и предложит включить редирект с HTTP на HTTPS — соглашайтесь, чтобы весь трафик шёл по защищённому соединению. Через минуту сайт откроется по HTTPS с валидным сертификатом, а его файлы окажутся в каталоге /etc/letsencrypt/live с именем вашего домена.

Редирект на HTTPS и проверка

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

curl -I http://example.com
nginx -t && systemctl reload nginx

Запрос по HTTP должен возвращать код перенаправления на HTTPS, обычно 301. Откройте сайт в браузере — замочек в адресной строке означает, что всё работает. Проверить детали сертификата, включая срок действия и цепочку доверия, можно как в браузере, так и командой из терминала. Если браузер всё же ругается на смешанное содержимое, значит, часть ресурсов страницы грузится по HTTP — их нужно перевести на HTTPS, но это уже вопрос кода сайта, а не сертификата. Сам сертификат при этом полностью валиден, проблема лишь в том, что страница подмешивает незащищённые ссылки, и их правят в настройках приложения.

Автопродление — главное удобство

Сертификаты Let's Encrypt действуют 90 дней, и вручную продлевать их было бы неудобно. Но certbot при установке уже создаёт системный таймер, который автоматически продлевает сертификаты, когда до истечения остаётся меньше месяца. Ваша задача — убедиться, что автопродление работает, пробным прогоном.

certbot renew --dry-run
systemctl list-timers | grep certbot

Команда renew с флагом dry-run имитирует продление без реального запроса и показывает, что процесс пройдёт успешно. Таймер certbot в списке подтверждает, что автоматика включена. Если пробное продление прошло без ошибок, можно про сертификаты забыть — они будут обновляться сами годами. Важно помнить одно условие: продление проходит через тот же механизм проверки, поэтому порт 80 должен оставаться открытым, а домен по-прежнему указывать на сервер. Частая причина внезапно истёкшего сертификата — кто-то закрыл порт 80, решив, что раз сайт на HTTPS, HTTP больше не нужен. Раз в пару месяцев полезно заглянуть и убедиться, что таймер жив.

Безопасные настройки TLS

Сертификат сам по себе включает HTTPS, но стоит потратить пару минут на укрепление TLS. Отключите устаревшие версии протокола, оставив только современные TLS 1.2 и 1.3, и добавьте заголовок HSTS, который заставляет браузер всегда обращаться к сайту по HTTPS.

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Включайте HSTS осознанно: он говорит браузеру месяцами не открывать сайт по HTTP, и откатить это быстро не выйдет, поэтому добавляйте заголовок, только когда уверены, что HTTPS настроен надёжно и надолго. Помните и о границах: сертификат защищает канал передачи данных, но не сам сервер. HTTPS работает в связке с фаерволом, входом по SSH-ключам и своевременными обновлениями — вместе они дают полноценную защиту, а сертификат лишь один из её элементов. Настроить HTTPS для сайта удобно на VPS у MAATRIX: белый IP под ваш домен, нужная локация и оплата из России картой, СБП или криптой — сервер с валидным сертификатом Let's Encrypt поднимается за минуты.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Сколько стоит сертификат Let's Encrypt?

Ничего, он бесплатен. Let's Encrypt — некоммерческий центр сертификации, которому доверяют все браузеры. Вы платите только за сам VPS, а сертификат и его продление бесплатны.

Почему сертификат выдаётся всего на 90 дней?

Это осознанный подход Let's Encrypt: короткий срок компенсируется автоматическим продлением через таймер certbot. Вам не нужно ничего делать вручную, сертификат обновляется сам заранее.

Нужен ли домен для Let's Encrypt?

Да, сертификат выдаётся на доменное имя, а не на голый IP, и A-запись домена должна вести на ваш сервер. Без корректной DNS-записи центр не сможет проверить контроль над доменом.

Как получить wildcard-сертификат на все поддомены?

Wildcard выдаётся только через проверку DNS-01: нужно добавить TXT-запись в DNS домена. Certbot поддерживает этот способ, он удобен, когда поддоменов много и выпускать на каждый отдельный сертификат неудобно.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.