Web & CMS

Что такое HTTPS и сертификат (SSL/TLS, certbot)

Что это

Замок в адресной строке. Шифрует то, что посетитель вводит на сайте, и подтверждает, что сайт настоящий. Без него браузеры пишут «не защищено», а поисковики понижают.

Как используем

Сертификаты Let's Encrypt выпускаются и продлеваются автоматически на входном nginx, о них не нужно помнить.

Где HTTPS нужен бизнесу

  • Без замка в адресной строке браузер пишет «не защищено», и посетитель уходит, не оставив заявку.
  • Telegram Mini App открывается только по адресу с HTTPS, поэтому кабинет или инструкция в боте без сертификата не заработают.
  • Через форму на сайте передаются телефоны и имена, и их нельзя гнать открытым текстом.
  • Сертификат истёк в выходные, и сайт с утра понедельника не открывается.

Как мы это используем

  • Автопродление. На сервере сайтов сертификаты Let's Encrypt выпускает certbot с проверкой через каталог webroot, поэтому nginx не нужно останавливать. Продление идёт по таймеру, а хук после продления заставляет nginx перечитать сертификат без перезапуска. Скрипт проверки показывает остаток срока по всем сайтам, порог тревоги — меньше 20 дней.
  • Смена домена без обрыва. На VPN-трассе один скрипт переносит маршрут на новый домен: сертификат, конфиг nginx и подписки. Живые сессии не рвутся, потому что nginx перечитывает конфиг, а не перезапускается.
  • Проверка через DNS. Демо-хост сайтов производителя упаковки не может ответить на HTTP-проверку из-за ограничений сервера, поэтому сертификат выпускается с проверкой DNS-01.
  • Статика с HTTPS. Инструкции по подключению VPN лежат на GitHub Pages: HTTPS там уже есть, а Telegram без него Mini App не откроет.

HTTPS входит в развёртывание сайтов и серверов — раздел Инфраструктура.

Типичные проблемы

  • certbot обновил файлы, nginx отдаёт старое. Без хука после продления nginx держит старый сертификат в памяти до истечения срока. Именно так было на VPN-трассе до исправления.
  • Сертификат не выпускается. Для второго российского узла выпустить сертификат не удалось, и один из сайтов какое-то время работал без HTTPS. Это одна из причин, по которым сайты переехали на отдельный сервер.
  • Сервер не отвечает на проверку. Тогда выручает DNS-01: владение доменом подтверждается записью в DNS.
  • Обращение по голому IP. Входной nginx отклоняет такое рукопожатие и закрывает соединение: по одному адресу сервера не видно ни одного сайта.

Когда это не нужно

Свой сертификат не нужен, если сайт живёт на хостинге, который выдаёт HTTPS сам. И VLESS Reality на выходном узле VPN обходится без домена и сертификата вовсе — там маскировка устроена иначе.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.