HTTPS на практике: сертификат, продление и типичные поломки

Зачем:О том, что такое TLS и сертификат, вы уже знаете. После урока вы умеете получить сертификат для своего домена, понимаете, как центр проверяет, что домен ваш, настраиваете автоматическое продление и узнаёте четыре поломки, которые встречаются чаще всего, в том числе «смешанное содержимое».

20 минут

Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.

Сертификат TLS выдают тому, кто доказал, что управляет доменом: файлом на сайте (HTTP-01) или записью в DNS (DNS-01). Let’s Encrypt делает это по ACME.

Что уже есть и чего не хватает

В уроке о HTTPS и TLS вы разобрали, что такое TLS: рукопожатие, сертификат и удостоверяющий центр. Теперь практика. Для каждого сайта надо ответить на четыре вопроса: как получить сертификат, как он будет продлеваться, что сломается, если продление не сработает, и всё ли на странице действительно идёт по https. Пройдём их по порядку.

Как получить сертификат

Для обычного сайта сертификат почти всегда бесплатный и автоматический. Три пути вы уже знаете из урока о HTTPS и TLS; вот как они выглядят на деле, и первый для новичка лучший.

  • Платформа делает всё сама. Статические хостинги (GitHub Pages, Cloudflare Pages, Netlify, Vercel) и большинство хостингов с панелью включают HTTPS одной кнопкой или сразу. Вы ничего не продлеваете.
  • Программа на вашем сервере. Certbot или веб-сервер Caddy (он умеет включать HTTPS сам) обращаются к центру, получают сертификат и продлевают его в фоне.
  • Платный сертификат у удостоверяющего центра: нужен там, где этого требуют правила организации. Для небольшого сайта обычно лишний.

Бесплатные сертификаты выдаёт Let’s Encrypt по открытому протоколу ACME (RFC 8555): программа и центр сами «договариваются» без людей. Именно поэтому сроки можно сокращать: человек раз в три месяца забудет, а автоматика нет.

О российской специфике. Положение сертификатов для российских сайтов осенью 2026 года меняется быстро: зарубежные центры могут отказать организациям под санкциями, а российский государственный центр (НУЦ) выдаёт сертификаты, корень которых зарубежные браузеры по умолчанию не включают. Для обычного небольшого сайта частного специалиста, как правило, достаточно Let’s Encrypt или сертификата хостинга, но проверьте актуальное положение у провайдера, прежде чем строить на этом планы.

Как центр проверяет, что домен ваш

Любой центр выдаёт сертификат только тому, кто управляет доменом. Для этого есть «задания» (challenges). Два из них вам нужно знать.

  • HTTP-01: центр просит положить файл по адресу http://ваш-домен/.well-known/acme-challenge/<строка> и сам заходит за ним. Нужен открытый порт 80 и работающий сайт. Просто и подходит для большинства случаев.
  • DNS-01: центр просит добавить в зону запись TXT с именем _acme-challenge.ваш-домен. Сайт не нужен, порт 80 может быть закрыт. Это единственный способ получить wildcard (*.ваш-домен, покрывает любые поддомены первого уровня), но для автоматизации программе нужен доступ к API вашего DNS-провайдера.

Есть и третье, TLS-ALPN-01, оно встречается редко. Поиграйте: включите wildcard и посмотрите, что изменилось в проверке. Потом сломайте сертификат одним из четырёх способов и посмотрите, что увидит посетитель.

Как центр проверяет домен и что видит посетитель, когда что-то сломалось
  1. Вы просите сертификат на example.ru и www.example.ru (программа на сервере: Certbot, Caddy или кнопка в панели хостинга).
  2. Центр отвечает: «Положите по адресу http://example.ru/.well-known/acme-challenge/<случайная строка> файл с таким содержимым».
  3. Программа кладёт файл. Для этого порт 80 должен быть открыт: HTTP-проверка идёт именно по нему.
  4. Центр сам заходит по этому адресу, находит файл и убеждается, что сайтом управляете вы.
  5. Центр подписывает сертификат. Задолго до конца срока программа сама запросит новый.
Что сломалось

Посетитель видит. Замочек, страница открывается.

Почему. Сертификат действует, имя совпадает, цепочка полная, на странице нет ресурсов по http.

Что делать. Ничего делать не нужно. Следите за сроком.

Проверьте себя: почему для wildcard годится только проверка через DNS?

Wildcard покрывает все поддомены. Файл на одном сайте не доказывает, что вам принадлежат все остальные. А запись в зоне доказывает, что вы управляете всем доменом.

Имена и что в них входит

Сертификат выдаётся на список имён. Это важно: сертификат на example.ru не покрывает www.example.ru, и посетитель, набравший www, получит предупреждение. Поэтому в сертификат включают все имена, под которыми сайт открывается: корень, www и нужные поддомены. Если поддоменов много или они появляются часто, берут wildcard (с оговоркой про DNS-проверку выше).

Если в брифе есть второй язык и вы выбрали каталог /en/ (как в уроке про DNS), отдельный сертификат не нужен: домен тот же. Это ещё один довод за каталог.

Ещё одна необязательная защита: запись CAA в зоне домена перечисляет, какие центры вправе выпускать сертификаты на ваш домен. Остальные получат отказ.

Продление: автоматика и сторожок

Сертификат Let’s Encrypt сегодня действует 90 дней, и срок будет сокращаться (даты в уроке о HTTPS и TLS). Срок любого публичного сертификата ограничивает и Форум CA/Browser, объединение центров сертификации и производителей браузеров: по тексту его Baseline Requirements предел составлял 398 дней до 15 марта 2026 года, 200 дней с этой даты, 100 дней с 15 марта 2027 года и 47 дней с 15 марта 2029 года (сверено с текстом документа в октябре 2026). Программа продлевает их заранее, обычно за треть срока до конца. Хорошо, когда это происходит незаметно, и плохо, когда происходит без вашего ведома. Автоматика ломается молча: закрыли порт 80, сменили DNS, поменяли провайдера, кончилось место на диске. Через два с половиной месяца посетители видят красное предупреждение.

Поэтому нужны два слоя защиты.

  1. Автоматическое продление, которое вы один раз проверили: например, certbot renew --dry-run пробует продлить без настоящей выдачи и показывает ошибки.
  2. Независимый сторож: внешний мониторинг, который проверяет срок и пишет вам за две недели до конца. С июня 2025 года Let’s Encrypt сам перестал присылать письма о скором окончании, поэтому на себя рассчитывать нельзя. Сторож можно взять из тех же сервисов, которые следят за доступностью сайта (последний урок части).
Проверьте себя: зачем нужен независимый мониторинг, если продление автоматическое?

Автоматика ломается незаметно. Мониторинг срока сообщит вам до того, как сломается сайт, а не после жалобы посетителя.

Смешанное содержимое

Вы разобрали TLS так, будто защищена вся страница. На деле страница это десятки запросов: HTML, стили, скрипты, картинки, шрифты, превью. Если хотя бы один из них идёт по http://, защита неполная. Это называется смешанным содержимым (mixed content):

  • активное (скрипты, стили, фреймы): браузер блокирует его совсем, потому что подмена скрипта ломает весь сайт;
  • пассивное (картинки, аудио, видео): браузеры обычно улучшают такие запросы до https или блокируют, но замочек может пропасть.

Как чинить. Замените в адресах http:// на https://, а для своих файлов используйте адреса без домена: /images/portrait.jpg. Как страховку добавьте заголовок Content-Security-Policy: upgrade-insecure-requests: браузер сам попробует загрузить ресурсы по https. Заодно проверьте мелочи, о которых забывают: адрес в canonical, картинку для превью ссылки (og:image), ссылки внутри сайта и в карте сайта.

И последняя деталь: сам сайт должен перенаправлять http:// на https:// постоянным редиректом 301, а cookie с флагом Secure (из урока об аутентификации) не пойдут по http вовсе.

HSTS, но осторожно

Заголовок Strict-Transport-Security (HSTS) говорит браузеру: «Этот сайт только по https, не пытайся по http, даже если пользователь так набрал». Это закрывает последнюю щель: первый http-запрос, который мог бы быть перехвачен.

Но у него есть цена. Браузер запоминает указание на срок max-age, и если вы сломаете https, посетители не смогут открыть сайт, а обойти предупреждение им не дадут. Поэтому начинают с малого (сутки), убеждаются, что всё работает, и только потом увеличивают срок. Предзагрузка (preload), когда ваш сайт зашивают в сам браузер, почти необратима: для небольшого сайта она не нужна.

Практика

Сайт эпохи 2022 года открывается по https, но в нём остались «забытые» адреса по http: картинка, canonical, превью для ссылок, ссылка на политику. Исправьте их все. Потом заполните заметку: как вы получаете сертификат, какие имена в нём, где живут языки, как он продлевается, что вы делаете, если продление сломается, и что вы решили про HSTS.

Проверка читает код страницы: она найдёт все адреса, которые начинаются с http://. Замочек и предупреждения браузера в этой песочнице не видны, поэтому после реального выкладывания (урок про публикацию) посмотрите их сами в панели разработчика, на вкладке «Консоль».

Что было не так раньше

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

Практика

Готовлю вашу страницу…

Тест

Вопрос 1 из 5

Вы просите у Let’s Encrypt сертификат wildcard на *.example.ru. Какая проверка возможна?

Один ответ

Карточки

Эти карточки попадут в повторение, когда вы завершите урок.

  • Как Let’s Encrypt проверяет, что домен ваш?

    Ответ

    HTTP-01: файл по адресу /.well-known/acme-challenge/ на порту 80. DNS-01: запись TXT _acme-challenge в зоне. Wildcard (*.example.ru) возможен только через DNS-01.

  • На какие имена нужен сертификат?

    Ответ

    На все, под которыми открывается сайт: корень и www, нужные поддомены (или wildcard). Сертификат на example.ru не покрывает www.example.ru.

  • Четыре частые поломки HTTPS

    Ответ

    Истёк срок (не сработало продление), имя не совпало, неполная цепочка (нет промежуточного), смешанное содержимое (ресурс по http на https-странице).

  • Что такое HSTS и в чём осторожность?

    Ответ

    Заголовок Strict-Transport-Security: браузер запоминает, что сайт только по https. Начинайте с малого max-age: отменить запомненное нельзя.

Источники

Дальше

Теперь вы знаете: сертификаты TLS и Let’s Encrypt на практике.