Let’s Encrypt SSL-сертификат: как получить и установить на сайт — инструкция для новичка
Материал из блога HostingFAQ: как получить Let's Encrypt SSL-сертификат бесплатно и установить его на сайт с Nginx на VPS. Вы проверите домен, выпустите сертификат через Certbot, настроите автопродление и разберёте типичные ошибки. На всё уйдёт около 15 минут. Если сервера ещё нет, сначала выберите VPS под сайт.

Коротко
- Let's Encrypt выдаёт сертификаты бесплатно: 0 ₽ за выпуск и продление.
- Срок действия сертификата — 90 дней, Certbot продлевает его, когда остаётся 30 дней или меньше.
- Для проверки домена нужны открытые порты 80 (HTTP) и 443 (HTTPS).
- Выпуск на Ubuntu 24.04 с Nginx занимает около 5 минут одной командой Certbot.
- Лимит: до 50 сертификатов на один домен в неделю и 5 дубликатов одного набора имён в неделю.
- Wildcard-сертификат вида *.example.ru выдаётся только через проверку DNS-01.
- Автопродление проверяется командой certbot renew --dry-run.
Что такое Let’s Encrypt и зачем нужен SSL-сертификат
SSL/TLS-сертификат (Secure Sockets Layer / Transport Layer Security) шифрует трафик между браузером и сервером и включает протокол HTTPS (HyperText Transfer Protocol Secure). Признак HTTPS — значок замка в адресной строке. Как устроены такие протоколы, описано в материале про сетевой протокол.
Let’s Encrypt — бесплатный центр сертификации: выпуск и продление стоят 0 ₽. Он выдаёт только DV-сертификаты (Domain Validation, проверка домена). Они подтверждают, что вы управляете доменом, но не проверяют организацию. Срок действия сертификата — 90 дней, потом он продлевается.
Без сертификата сайт работает по HTTP, и браузеры помечают его как «Небезопасно». Посетитель видит предупреждение и часто уходит, а логины, пароли и данные форм идут по сети открытым текстом. Подробнее о том, зачем сайту сертификат безопасности, читайте отдельно.
Сертификат на сайте даёт три результата:
- шифрует логины, пароли и данные форм при передаче;
- убирает предупреждение браузера и показывает замок;
- подтверждает, что посетитель открыл именно ваш домен, например
example.ru.
Если сертификат нужен прямо сейчас, перейдите к инструкции, как установить сертификат на сайт.
Как работает выдача сертификата Let’s Encrypt
Let’s Encrypt выдаёт сертификаты по протоколу ACME (Automatic Certificate Management Environment, «автоматическая среда управления сертификатами»). Программа-клиент на вашем сервере, Certbot, запрашивает сертификат у центра сертификации. Тот сначала проверяет, что домен принадлежит вам. Выпуск и продление стоят 0 ₽.
Проверка идёт одним из двух способов. При HTTP-01 Certbot кладёт временный файл на сайт, а центр сертификации скачивает его по адресу домена. При DNS-01 вы добавляете в DNS (Domain Name System) TXT-запись _acme-challenge: разберите типы DNS-записей домена и откройте панель управления у регистратора, чтобы найти нужный раздел.
Сравните способы по главным параметрам:
| Параметр | HTTP-01 | DNS-01 |
|---|---|---|
| Что проверяется | файл на сайте по HTTP | TXT-запись _acme-challenge |
| Порты | 80 и 443, домен указывает A-записью на IP сервера | открытые порты сервера не нужны |
Wildcard *.example.ru |
не подходит | подходит |
| Когда выбирать | один сайт на VPS с Nginx | нужен wildcard или порт 80 закрыт |
Сертификат действует 90 дней. Таймер systemd (или cron) запускает проверку срока два раза в сутки. Certbot продлевает сертификат, когда до окончания остаётся 30 дней или меньше.

Что подготовить перед выпуском сертификата
Let’s Encrypt проверяет, что домен принадлежит вам, поэтому сервер и DNS (система доменных имён) должны быть готовы заранее. Если сервера ещё нет, выберите VPS под сайт: подойдёт тариф с Ubuntu 24.04.
В статье мы используем домен example.ru, веб-сервер Nginx и VPS (виртуальный сервер) на Ubuntu 24.04. К серверу подключайтесь по SSH (защищённое удалённое подключение) под пользователем с правами sudo. Если подключаетесь с Windows, настройте PuTTY, а общие основы разберите в материале про Linux для сервера.
Перед выпуском проверьте четыре условия:
- A-запись
example.ruиwww.example.ruуказывает на внешний IP-адрес сервера. Проверьте командойdig +short example.ru: ответ должен совпасть с IP. Новые записи обычно обновляются от нескольких минут до суток. - Порты 80 (HTTP) и 443 (HTTPS) открыты в файрволе и в панели хостера. Локально смотрите
sudo ufw status, а если порт закрыт, разберитесь с пробросом портов. - Nginx запущен:
sudo systemctl status nginxпоказываетactive (running). - Сайт отвечает по адресу
http://example.ru, а в конфиге указаноserver_name example.ru www.example.ru;.
Как установить Let’s Encrypt SSL-сертификат через Certbot: пошагово
Certbot — бесплатная программа, которая сама запрашивает сертификат у Let’s Encrypt и правит конфигурацию Nginx. Выпуск на Ubuntu 24.04 занимает около 5 минут и стоит 0 ₽. Ниже пример для домена example.ru и поддомена www.example.ru.
Перед стартом убедитесь, что домен указывает A-записью на IP сервера, а порты 80 и 443 открыты. Если нужен отдельный адрес вроде cloud.example.ru, создайте поддомен по инструкции и добавьте его ещё одним ключом -d.
Выполните шаги по порядку:
- Подключитесь к серверу по SSH (Secure Shell, защищённое удалённое подключение):
ssh user@IP-адрес. - Обновите список пакетов:
sudo apt update. - Установите Certbot:
sudo snap install --classic certbot. Затем создайте ссылку:sudo ln -s /snap/bin/certbot /usr/bin/certbot. - Запустите выпуск:
sudo certbot --nginx -d example.ru -d www.example.ru. - Ответьте на вопросы Certbot: укажите рабочий e-mail для уведомлений, примите условия использования и выберите пункт с редиректом HTTP→HTTPS, чтобы старые адреса
http://открывались по защищённому протоколу. - Проверьте результат: откройте
https://example.ruв браузере и убедитесь, что рядом с адресом появился замок. Затем запуститеsudo certbot renew --dry-run— это пробное продление без реальной замены файлов.
Готовые файлы лежат в каталоге /etc/letsencrypt/live/example.ru/: цепочка сертификатов в fullchain.pem, закрытый ключ в privkey.pem. Никому не передавайте privkey.pem. Сертификат действует 90 дней, а автопродление включено сразу после установки.
В панелях хостинга, например VestaCP и ISPmanager, выпуск делается кнопкой в настройках домена, без командной строки. Если сервера ещё нет, разберитесь, как выбрать VPS под сайт. Уже есть сервер и хочется развернуть на нём что-то полезное? Установите Nextcloud на VPS и защитите его тем же сертификатом.

Сроки, продление и лимиты Let’s Encrypt
Сертификат Let’s Encrypt действует 90 дней, а выпуск и продление стоят 0 ₽. Короткий срок нужен для автоматизации: сертификат обновляется сам, а утёкший ключ быстро теряет силу.
Certbot проверяет сертификаты два раза в сутки по таймеру systemd (или cron) и продлевает те, у которых осталось 30 дней или меньше. Если порты 80 и 443 закрыты, продление не пройдёт. Заранее настройте резервное копирование каталога /etc/letsencrypt.
Основные параметры собраны в таблице:
| Параметр | Значение |
|---|---|
| Срок действия и цена | 90 дней, 0 ₽ |
| Продление | когда осталось 30 дней или меньше |
| Проверки Certbot | 2 раза в сутки |
| Лимит сертификатов | 50 на домен в неделю |
| Дубликаты | 5 в неделю на один набор имён |
Wildcard (*.example.ru) |
только через DNS-01 |
Состояние сертификатов проверьте двумя командами:
sudo certbot certificates— покажет домены, дату окончания и путь к файлам;systemctl list-timers— в списке найдите строку сcertbot, это включённый таймер продления.
Для wildcard-сертификата нужна проверка DNS-01 (Domain Name System, система доменных имён): Certbot попросит создать TXT-запись _acme-challenge у вашего DNS-провайдера. Если вы уже работаете с записями домена, заодно настройте доменную почту. Автопродление wildcard-сертификата работает, только если DNS-запись обновляется автоматически, например через плагин провайдера.

Частые ошибки при выпуске и продлении сертификата
Выпуск Let’s Encrypt обычно проходит с первого раза, но шесть ошибок встречаются чаще остальных: Challenge failed, неверная A-запись, превышение лимита, просроченный сертификат, смешанное содержимое и ошибка 522 за Cloudflare. Большинство из них решается за 5–10 минут.
Начните с текста ошибки в выводе Certbot и журнала /var/log/letsencrypt/letsencrypt.log: там видно, какую проверку сервер не прошёл.
Challenge failed или timeout
Проверка HTTP-01 не достучалась до сервера, потому что порт 80 закрыт файрволом. Откройте порты командой sudo ufw allow 80,443/tcp и повторите выпуск. Если не помогло, проверьте файрвол в панели провайдера VPS.
Домен указывает на другой IP
A-запись example.ru или www.example.ru ведёт на старый сервер, поэтому проверка попадает не туда. Исправьте A-запись на IP вашего VPS и дождитесь обновления DNS: обычно от нескольких минут до нескольких часов.
Too many certificates
Вы превысили лимит: 50 сертификатов на домен или 5 дубликатов одного набора имён в неделю. Подождите неделю и не запускайте выпуск повторно в цикле.
Сертификат просрочился через 90 дней
Автопродление не работает: остановлен таймер systemd или cron-задача. Проверьте таймер командой systemctl list-timers | grep certbot, затем запустите sudo certbot renew --dry-run и исправьте показанную ошибку.
Смешанное содержимое (mixed content)
Страница открыта по HTTPS, но картинки, скрипты или стили грузятся по http://, и браузер блокирует их. Замените http:// на https:// в шаблонах, CSS и базе сайта.
Ошибка 522 при Cloudflare
Cloudflare не дозвонился до вашего сервера: обычно закрыт порт 443 или режим SSL не совпадает с настройками. Причины разобраны в материале как исправить ошибку 522, а режимы шифрования описаны в статье как настроить Cloudflare. Если сервер недоступен из-за шквала запросов, узнайте, как отличить DDoS-атаку.
/etc/letsencrypt: в нём лежат ключи и настройки продления. Перед экспериментами сделайте копию, например sudo cp -a /etc/letsencrypt /root/letsencrypt-backup.Почти все сбои сводятся к трём причинам: закрытый порт, неверный DNS или остановленный таймер. Проверьте их по очереди, и сертификат заработает без повторных выпусков.
Альтернативы Let’s Encrypt: платные сертификаты и Cloudflare
Let’s Encrypt закрывает большинство задач: выпуск и продление стоят 0 ₽, сертификат действует 90 дней, а Certbot продлевает его, когда остаётся 30 дней или меньше. Но центр выдаёт только DV-сертификаты (Domain Validation, проверка домена) без проверки организации.
Платные сертификаты стоят от нескольких сотен до нескольких тысяч ₽ в год, цена зависит от центра сертификации и типа. OV (Organization Validation) и EV (Extended Validation) подтверждают данные компании. Шифруют трафик они так же, как бесплатный DV, а платите вы за проверку и поддержку.
Выбирайте по задаче. Вот как выглядят четыре варианта:
- Let’s Encrypt подходит для сайта на своём VPS, лендинга и интернет-магазина, если никто не требует подтверждения компании. Нужны доступ к серверу и открытые порты 80 и 443.
- Платный DV, OV или EV нужен, когда партнёр, банк или тендер требуют подтверждённую организацию. Минус: оплата и самостоятельный перевыпуск.
- Сертификат от хостинга включается в панели за несколько кликов. Он привязан к площадке и тарифу; о границах ответственности читайте в материале про разницу между доменом и хостингом.
- Cloudflare выдаёт сертификат на своей стороне за пару минут. Сервис шифрует трафик до посетителя, но между ним и вашим сервером нужен собственный сертификат, иначе этот участок останется открытым. Подробности: что такое Cloudflare и как он работает.
Кому Let’s Encrypt не подходит
Let’s Encrypt выдаёт только DV-сертификаты (Domain Validation, проверка домена) и не проверяет организацию. Если банку, платёжному сервису или крупной компании нужен OV (Organization Validation) или EV (Extended Validation), бесплатный сертификат не подойдёт. Такие сертификаты выдают платные центры сертификации после проверки документов.
Второе ограничение связано с автоматикой. Сертификат действует 90 дней, а Certbot продлевает его, когда остаётся 30 дней или меньше. Для проверки HTTP-01 сервер должен быть доступен из интернета по портам 80 и 443, поэтому во внутренней сети и на устройствах без выхода наружу продление не сработает.
Вот случаи, когда лучше выбрать другой вариант:
- контрагент или регулятор требует сертификат от конкретного центра сертификации;
- нужна проверка организации (OV или EV);
- сервер работает в изолированной сети без доступа к интернету;
- нет возможности настроить таймер systemd или cron для команды
certbot renew.
В таких случаях купите платный сертификат (обычно на 1 год) или выпустите внутренний сертификат собственным центром сертификации. Проще всего это делать на своём сервере с полным доступом: вы сами открываете порты, ставите нужное ПО и настраиваете продление. Сначала посмотрите, как арендовать виртуальный сервер, и разберитесь, чем VDS отличается от обычного хостинга. Если остались вопросы, прочитайте ответы о VPS.
Частые вопросы
Let's Encrypt действительно бесплатный?
На сколько действует сертификат Let's Encrypt?
Как продлить сертификат Let's Encrypt?
Какие порты нужны для выпуска сертификата?
Можно ли получить wildcard-сертификат Let's Encrypt?
Чем Let's Encrypt отличается от платного SSL-сертификата?
Что делать, если Certbot пишет Challenge failed?
Сколько сертификатов можно выпустить в неделю?
Работает ли Let's Encrypt с Cloudflare?
Нужно ли перезапускать Nginx после выпуска сертификата?
Проверьте себя
- Домен и www указывают A-записью на IP вашего сервера.
- Порты 80 и 443 открыты в фаерволе.
- Сертификат выпущен командой certbot для нужных имён.
- HTTP перенаправляет на HTTPS.
- Команда certbot renew --dry-run проходит без ошибок.
- Страницы сайта открываются без предупреждений о смешанном содержимом.
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.