Почему веб-серверы используют обратный прокси для SSL?

#ssl #reverse-proxy

#ssl #обратный прокси

Вопрос:

Почему веб-серверы обычно используют обратный прокси для SSL? Я понимаю концепцию обратного прокси и его полезность для балансировки нагрузки между несколькими серверами, но не для реализации SSL. Разве веб-сервер не может просто создать прослушивающие сокеты в разных портах для HTTP и HTTPS (т.Е. HTTP с SSL)?

Комментарии:

1. Вероятно, это больше подходит для ServerFault, чем здесь.

2. Намного проще иметь все SSL-сертификаты и т. Д. В одном месте, И Tomcat, например, не дает вам почти такого же контроля над SSL, как Apache HTTPD, чтобы назвать мою собственную конфигурацию.

Ответ №1:

Я часто использую Nginx в качестве обратного прокси.

Nginx служит интерфейсом HTTPS. Он размещает сертификат и закрытый ключ, перенаправляет HTTP-> HTTPS, добавляет необходимые заголовки в ответ и инкапсулирует интрасеть.

Фактическая бизнес-логика выполняется зоопарком различных серверов в интрасети, которые обслуживают через HTTP — nodejs, go, php. Они работают на разных машинах. Некоторые из них являются устаревшими и понятия не имеют о TLS, некоторые из них немного моложе и поддерживают только TLS 1.1.

Причины использования Nginx в качестве интерфейса HTTPS:

  1. Я не доверяю реализациям HTTPS от третьих сторон.
  2. Я не хочу возиться со всеми прибамбасами, требуемыми различными реализациями для прикрепления сертификата.
  3. Я не хочу беспокоиться о устаревшем или стороннем программном обеспечении с устаревшей версией / конфигурацией шифров TLS или полностью пропускать HTTPS.
  4. Мне нравится, как Certbot автоматически обрабатывает мои сертификаты в Nginx.
  5. Мне нравится удобная функция Nginx, которую не предоставляет ни один из пользовательских серверов, например, перенаправление с HTTP на HTTPS, балансировка нагрузки, быстрые статические страницы и множество других.

Комментарии:

1. Я вижу преимущество использования обратного прокси для SSL, если у вас уже есть прокси для кэширования / балансировки нагрузки, но мой первоначальный вопрос касается более простого сценария: зачем использовать обратный прокси для SSL, если у вас есть только один веб-сервер (например, Apache) без кэширования / балансировки нагрузки?