HTTPS (HyperText Transfer Protocol Secure) — протокол передачи веб-данных, объединяющий HTTP с шифрованием TLS (Transport Layer Security). Работает на порту 443 (HTTP — на порту 80). Браузер устанавливает TLS-соединение до отправки HTTP-запроса: весь последующий трафик шифруется и защищён от перехвата на промежуточных узлах.
Как работает TLS-хендшейк
Установка HTTPS-соединения (TLS 1.3, RFC 8446):
- Клиент отправляет ClientHello: поддерживаемые шифры, версии TLS, случайное число.
- Сервер отвечает ServerHello: выбранный шифр, свой сертификат X.509, публичный ключ для ECDH.
- Клиент проверяет сертификат: цепочка доверия до Root CA, срок действия, имя домена (CN/SAN).
- Стороны вычисляют общий сессионный ключ через ECDH (нет передачи ключа по сети).
- Начинается шифрованная передача HTTP-данных.
TLS 1.3 (2018) значительно быстрее TLS 1.2: хендшейк занимает 1 RTT (Round-Trip Time) вместо 2, есть режим 0-RTT для повторных соединений (с ограничениями по безопасности). Современные серверы — nginx 1.13+, Apache 2.4.37+ — поддерживают TLS 1.3 нативно.
История
HTTPS разработан Netscape Communications в 1994 году для браузера Netscape Navigator — первоначально на базе SSL 2.0. SSL 3.0 (1996) исправил критические уязвимости. TLS 1.0 (RFC 2246, 1999) заменил SSL, TLS 1.2 (2008) — актуальная версия для большинства систем, TLS 1.3 (RFC 8446, 2018) — современный стандарт. Google ввёл HTTPS как сигнал ранжирования в 2014 году. Let's Encrypt запустился в 2015 году, сделав бесплатные SSL-сертификаты доступными. В 2017 году Chrome начал помечать HTTP-сайты как «незащищённые».
HTTPS и SEO
Google официально подтвердил учёт HTTPS как сигнала ранжирования в августе 2014 года. С 2018 года Chrome 68 помечает все HTTP-сайты как «Not secure». Переход на HTTPS без корректной настройки 301-редиректов (с HTTP на HTTPS) приводит к дублированию контента и потере позиций. Canonical-тег и настройка HSTS (HTTP Strict Transport Security) предотвращают обращения по HTTP после первого HTTPS-соединения.
На что обращать внимание
При установке wildcard SSL или обычного сертификата через ACME (Let's Encrypt, ZeroSSL) настройте автоматическое продление — сертификаты Let's Encrypt действуют 90 дней. Смешанный контент (Mixed Content): если страница HTTPS загружает ресурсы по HTTP, браузер блокирует их или показывает предупреждение. HSTS Preload — механизм, при котором браузер никогда не обращается по HTTP к домену даже при первом визите (нужна регистрация в hstspreload.org).
История HTTPS
HTTPS появился в 1994 году вместе с браузером Netscape Navigator 1.1 как расширение HTTP с шифрованием через SSL 2.0. SSL 3.0 (1995), TLS 1.0 (1999, RFC 2246), TLS 1.2 (2008, RFC 5246), TLS 1.3 (2018, RFC 8446). Google объявил HTTPS как фактор ранжирования в 2014 году. С 2018 года Chrome помечает HTTP-сайты как «не защищённые». По статистике Firefox Telemetry, к 2023 году более 90% веб-страниц загружается по HTTPS.
Типичные ошибки
Первая ошибка — Mixed content: страница загружена по HTTPS, но подключает ресурсы по HTTP (скрипты, картинки). Браузер блокирует активный mixed content (JS, CSS). Вторая ошибка — не настроить редирект HTTP→HTTPS: без 301 Moved Permanently пользователи могут попасть на HTTP-версию. Третья ошибка — не включить HSTS: без него первый запрос всегда идёт по HTTP, что уязвимо для downgrade-атак. Сертификат получить бесплатно через Let's Encrypt.