ProximaMPProximaMP

Что такое HTTPS и чем он отличается от HTTP

HTTPS — тот же HTTP, но внутри защищённого канала. Именно он стоит за замком в адресной строке и предупреждением «Не защищено» на сайтах без него. Разберём, что такое HTTPS, чем он отличается от HTTP и откуда берётся сертификат.

Что добавляет HTTPS

Буква S — от secure. HTTPS не меняет ни методы, ни коды состояния, ни структуру запроса: он заворачивает обычный HTTP в слой TLS, который даёт три вещи.

  • Шифрование. Никто на пути не прочитает содержимое: ни адреса страниц, ни данные форм, ни куки. Видно только, с каким доменом ты соединился.
  • Целостность. Ответ нельзя незаметно подменить по дороге — вставить рекламу или подсунуть другой файл. Любое изменение ломает проверку.
  • Подлинность. Ты говоришь с тем сайтом, чей адрес в строке, а не с подставным. За это отвечает сертификат.

Чем отличается от HTTP

HTTPHTTPS
ШифрованиеНет, открытый текстЕсть, TLS
Защита от подменыНетЕсть
Проверка подлинности сайтаНетСертификат
Стандартный порт80443
Метка в браузере«Не защищено»Замок
Камера, микрофон, геолокацияЗаблокированыРаботают
Service Worker, PWAНе работаютРаботают
Индексация в поискеХужеЛучше

Обрати внимание на строки про камеру и Service Worker: это не рекомендация, а жёсткое ограничение браузеров. Ряд возможностей доступен только в secure context — то есть по HTTPS. Единственное исключение — сам localhost: его браузер считает доверенным. Поэтому локально PWA работает, а стоит открыть тот же сайт с телефона по IP — перестаёт.

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

Сертификат — это файл, который подтверждает: данный домен принадлежит тому, кто им управляет. Выдаёт его удостоверяющий центр (CA) — организация, которой браузеры доверяют по умолчанию, например Let's Encrypt.

Механика при подключении:

  1. Браузер запрашивает сертификат у сервера.
  2. Проверяет подпись центра, срок действия и что домен в сертификате совпадает с адресом в строке.
  3. Всё сошлось — показывает замок и устанавливает зашифрованное соединение.

Любая нестыковка — просрочен, выдан на другой домен, подписан неизвестно кем — и браузер выкатывает красный экран с предупреждением.

Почему самоподписанный сертификат не помогает

Сертификат можно выпустить самому за минуту — и он будет технически корректным: шифрование заработает. Но подписан он не доверенным центром, а тобой, и браузеру нечем проверить, что ты — это ты. Результат: «Подключение не защищено», кнопка «Всё равно перейти», недовольные тестировщики.

Отсюда же берётся mkcert и прочие локальные удостоверяющие центры: они добавляют твой сертификат в доверенные на твоей машине. На телефоне заказчика этого доверия не будет.

HTTPS — это не «сайт безопасен»

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

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

HTTPS замедляет сайт? Практически нет. Рукопожатие TLS добавляет немного на установку соединения, зато HTTPS открывает HTTP/2 и HTTP/3, которые в сумме обычно быстрее.

Что такое SSL — это другое? Исторически да: SSL — предшественник TLS, давно устаревший. Но «SSL-сертификат» по привычке говорят до сих пор, имея в виду TLS.

Сертификат нужно продлевать? Да, у них ограниченный срок. Бесплатные Let's Encrypt живут 90 дней и обычно обновляются автоматически.

Почему пишет «Не защищено» на моём сайте? Либо сертификата нет вовсе, либо он просрочен, либо выдан на другой домен, либо страница по HTTPS тянет часть ресурсов по HTTP.

Получить HTTPS для локального сайта

Выпускать и продлевать сертификат ради локальной разработки не нужно. Туннель отдаёт твой localhost наружу сразу по HTTPS с валидным сертификатом — приложение при этом продолжает работать по обычному HTTP и ничего не знает о шифровании. Как это включается — в гайде Как открыть localhost в интернет по HTTPS.

Ещё по теме: что такое HTTP · что такое TCP

Скачать ProximaClient для Windows →

Все статьи