HTTPS = HTTP + TLS
TLS (Transport Layer Security) — криптографический протокол, создающий зашифрованный канал между клиентом (браузером) и сервером. Три основные гарантии:
- Конфиденциальность — данные зашифрованы, перехваченный трафик нечитаем
- Целостность — данные не могут быть изменены в пути без обнаружения
- Аутентификация — сертификат подтверждает, что сервер — именно тот, за кого себя выдаёт
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.