TLS termination: где держать, чтобы не получить лишний геморрой и задержки
Если коротко: TLS надо завершать там, где это проще сопровождать и где меньше точек отказа. Для большинства сайтов это edge/CDN или reverse proxy перед приложением. Так вы выносите сертификаты, HTTP/2, редиректы и базовую защиту из боевого бэкенда.
Разумные варианты:
— CDN/edge: когда нужен WAF, DDoS-фильтр и единая точка входа. Плюс: меньше нагрузки на origin. Минус: зависимость от внешнего слоя.
— Load balancer / reverse proxy: хороший выбор для нескольких приложений и разных доменов.
— Origin: имеет смысл, если трафик маленький, инфраструктура простая, а лишний hop только добавит сложность.
Главное правило: между edge и origin тоже шифруй трафик. Иначе TLS превращается в красивую дверь с открытым коридором внутри. Для origin-подключений используй отдельный сертификат, а не тот же публичный, который светится наружу.
Проверяй три вещи: где заканчивается доверие, кто хранит ключи и где живёт редирект на HTTPS. Если сертификаты лежат на каждом приложении без системы — будет зоопарк из ручных обновлений и случайных простоявших доменов.
Выбор простой: если есть CDN и защита — терминируй на edge; если нужна гибкость внутри кластера — на proxy; если стек маленький — на origin, но только без открытого HTTP между узлами.
Если коротко: TLS надо завершать там, где это проще сопровождать и где меньше точек отказа. Для большинства сайтов это edge/CDN или reverse proxy перед приложением. Так вы выносите сертификаты, HTTP/2, редиректы и базовую защиту из боевого бэкенда.
Разумные варианты:
— CDN/edge: когда нужен WAF, DDoS-фильтр и единая точка входа. Плюс: меньше нагрузки на origin. Минус: зависимость от внешнего слоя.
— Load balancer / reverse proxy: хороший выбор для нескольких приложений и разных доменов.
— Origin: имеет смысл, если трафик маленький, инфраструктура простая, а лишний hop только добавит сложность.
Главное правило: между edge и origin тоже шифруй трафик. Иначе TLS превращается в красивую дверь с открытым коридором внутри. Для origin-подключений используй отдельный сертификат, а не тот же публичный, который светится наружу.
Проверяй три вещи: где заканчивается доверие, кто хранит ключи и где живёт редирект на HTTPS. Если сертификаты лежат на каждом приложении без системы — будет зоопарк из ручных обновлений и случайных простоявших доменов.
Выбор простой: если есть CDN и защита — терминируй на edge; если нужна гибкость внутри кластера — на proxy; если стек маленький — на origin, но только без открытого HTTP между узлами.