HTTPS = HTTP + TLS

TLS (Transport Layer Security) — криптографический протокол, создающий зашифрованный канал между клиентом (браузером) и сервером. Три основные гарантии:

  1. Конфиденциальность — данные зашифрованы, перехваченный трафик нечитаем
  2. Целостность — данные не могут быть изменены в пути без обнаружения
  3. Аутентификация — сертификат подтверждает, что сервер — именно тот, за кого себя выдаёт

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

TLS 1.2 vs TLS 1.3

Параметр TLS 1.2 TLS 1.3
RTT для установки соединения 2 RTT 1 RTT (или 0-RTT для resumption)
Набор cipher suites Широкий, включая устаревшие Только современные, безопасные
Поддержка браузерами Все актуальные Все актуальные с 2019 года

TLS 1.3 быстрее и безопаснее — рекомендуется как минимальная версия для новых развёртываний. TLS 1.0 и 1.1 устарели и отключены в большинстве браузеров.

Практические требования для e-commerce

Сертификаты

  • Let’s Encrypt — бесплатные сертификаты с автоматическим обновлением (Certbot), покрывают большинство задач
  • Wildcard (*.example.com) — для покрытия всех поддоменов одним сертификатом
  • EV (Extended Validation) — для крупных магазинов, отображает название компании в строке браузера (в Chrome скрыто с 2019, но поддерживается в других браузерах)
  • Срок до истечения: отслеживайте автоматически — просроченный сертификат блокирует доступ к сайту

Mixed content — самые частые источники

<!-- Плохо — загрузка по HTTP на HTTPS-сайте -->
<img src="http://cdn.example.com/image.jpg">
<script src="http://analytics.example.com/tag.js"></script>

<!-- Хорошо — протокол-независимый URL -->
<img src="//cdn.example.com/image.jpg">

<!-- Хорошо — явный HTTPS -->
<img src="https://cdn.example.com/image.jpg">

API и персонализация

Все запросы к внешним API (платформы персонализации, аналитики, поиска) должны идти по HTTPS. Особенно критично для:
— Передачи API-ключей и токенов авторизации
— Событийных данных (просмотры, добавления в корзину, покупки)
— A/B тестирования — данные о принадлежности пользователя к группе

Важно: никогда не передавайте API-ключи и токены в URL-параметрах — они сохраняются в логах серверов, браузерной истории и Referrer-заголовках. Только заголовки Authorization или X-API-Key по HTTPS.