TLS termination не всегда должен жить на одном сервере с приложением
Если сайт маленький и стек простой, TLS termination можно держать прямо на Nginx/Apache рядом с app. Меньше звеньев, проще отладка, меньше точек отказа.
Если есть CDN или reverse proxy, часто разумнее завершать TLS на edge. Тогда до origin идёт уже обычный HTTP внутри защищённого контура, а сертификаты на приложении не нужны. Это упрощает ротацию и снижает нагрузку на backend.
Когда трафик растёт или есть несколько сервисов, termination лучше выносить на отдельный балансировщик или ingress. Так проще централизовать:
— сертификаты и renewals;
— HSTS, redirects, ciphers;
— mTLS между сервисами;
— аудит логов и доступов.
Не тащите TLS глубоко в каждый микросервис без причины. Чем больше мест, где живёт сертификат и приватный ключ, тем больше риск ошибок в конфиге и утечек. Если нужна внутренняя шифрация, включайте её точечно: между edge и origin, между балансировщиком и backend, между сервисами, которым это реально нужно.
Базовое правило простое: termination ставьте там, где заканчивается контроль над трафиком. На edge — для публичного сайта. На origin — если нужен end-to-end контроль. На отдельном прокси — если важны масштабирование и единая политика безопасности.
Webmaster Stack — хостинг, CDN, безопасность
@webmaster_stack
TLS termination не всегда должен жить на одном сервере с приложением
Этот пост опубликован в Telegram-канале Webmaster Stack — хостинг, CDN, безопасность. Подписаться можно по ссылке: @webmaster_stack.