SSL сертификат и HTTPS: как включить

Что даёт сертификат, как включить HTTPS через панель хостинга, Let's Encrypt с certbot, Caddy или Cloudflare и как проверить результат.

3 мин чтенияОпубликовано 1 октября 2026 г.

Содержание10
  1. Коротко
  2. Что даёт сертификат
  3. Способы включить HTTPS
  4. Let's Encrypt и certbot
  5. Caddy
  6. Cloudflare
  7. Продление
  8. Как проверить
  9. Смешанный контент и HSTS
  10. Если не получилось

Коротко

  • HTTPS шифрует трафик между браузером и сайтом и подтверждает, что открыт именно ваш домен. Без него браузеры помечают сайт как небезопасный.
  • Бесплатного сертификата Let's Encrypt хватает большинству сайтов. Платный не шифрует сильнее.
  • Проще всего включить SSL кнопкой в панели хостинга, через Caddy или через Cloudflare.
  • Продление должно быть автоматическим, а срок жизни сертификатов со временем сокращается.
  • Проверяйте результат по замку в браузере и командой curl -I.

Что даёт сертификат

Сертификат связывает ключ шифрования с доменом. При подключении браузер проверяет срок действия, имя и цепочку доверия. Слово SSL историческое: сейчас работает протокол TLS, но привычное название осталось. Для большинства сайтов достаточно бесплатного сертификата с проверкой домена. Платный отличается проверкой организации и условиями поддержки, а не силой шифрования.

Способы включить HTTPS

  • Панель хостинга. В разделе SSL или Let's Encrypt выпустите сертификат для домена и www. Продление обычно автоматическое, но условия проверьте у своего хостинга.
  • Caddy. Получает и продлевает сертификаты сам.
  • Certbot на своём сервере с nginx или Apache.
  • Cloudflare. Сертификат для посетителей выпускается автоматически, а на сервере нужен свой.

Let's Encrypt и certbot

Нужно, чтобы A-запись домена вела на сервер, порты 80 и 443 были открыты, а nginx отвечал на этом домене.

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run

Через -d перечислите все имена, которые должны открываться по HTTPS. Последняя команда проверяет автоматическое продление.

Caddy

example.com, www.example.com {
    reverse_proxy 127.0.0.1:3000
}

Caddy сам получает сертификат (Let's Encrypt или ZeroSSL), продлевает его и перенаправляет HTTP на HTTPS. Нужны A-запись на сервер и открытые порты 80 и 443. Полный пример есть в статье как развернуть сайт на VPS.

Cloudflare

Когда домен стал Active, Universal SSL выпускается и продлевается автоматически, и посетитель видит сертификат Cloudflare. Между Cloudflare и сервером нужен свой сертификат (Let's Encrypt или Origin CA) и режим Full (strict). Подробности в статье как подключить домен к Cloudflare.

Продление

Сертификат Let's Encrypt сейчас действует 90 дней, а, по анонсу компании, срок для стандартного профиля сократят до 64 дней с февраля 2027 и до 45 дней с февраля 2028. Поэтому продление должно идти автоматически. С июня 2025 Let's Encrypt не присылает письма об истечении срока, так что настройте мониторинг или проверяйте дату сами.

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

curl -I https://example.com
curl -I http://example.com
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject

Первая команда не должна выдавать ошибку сертификата. Вторая должна вернуть редирект (301 или 308) на https. Третья показывает даты действия и имя в сертификате. В браузере нажмите на замок рядом с адресом и откройте сведения о сертификате.

Смешанный контент и HSTS

Смешанный контент: страница по HTTPS грузит картинки, скрипты или стили по http://. Браузер блокирует их или предупреждает. Откройте консоль разработчика, найдите такие адреса и замените их на https:// или на относительные.

HSTS (заголовок Strict-Transport-Security) велит браузеру ходить на сайт только по HTTPS. Включайте осторожно: браузер запомнит правило на весь срок max-age и не даст открыть сайт даже при просроченном сертификате, а быстро отменить это нельзя.

Начните с малого значения, например 300 секунд, и увеличивайте его, когда всё работает. Параметры includeSubDomains и preload включайте, только если уверены во всех поддоменах.

Если не получилось

  1. Сертификат просрочен: выполните sudo certbot renew --dry-run и прочитайте ошибку. Частые причины: закрытый порт 80 или изменённая конфигурация.
  2. Предупреждение о неверном имени: сертификат выпущен не на то имя, например без www. Выпустите его заново со всеми именами.
  3. ERR_TOO_MANY_REDIRECTS: в Cloudflare включён режим Flexible, а сервер сам перенаправляет HTTP на HTTPS, либо два редиректа работают друг против друга.
  4. Certbot не подтверждает домен: A-запись ведёт не на этот сервер, порт 80 закрыт файрволом, есть AAAA-запись на адрес без сервера или запись CAA не разрешает Let's Encrypt.
  5. Ошибки 525 и 526 у Cloudflare: сертификат на сервере недействителен или выпущен на другое имя.
  6. Часы на устройстве сбиты: браузер считает действующий сертификат просроченным.

Если что-то непонятно, напишите мне в Telegram: @lztcoder

Читайте также