#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:
- Я не доверяю реализациям HTTPS от третьих сторон.
- Я не хочу возиться со всеми прибамбасами, требуемыми различными реализациями для прикрепления сертификата.
- Я не хочу беспокоиться о устаревшем или стороннем программном обеспечении с устаревшей версией / конфигурацией шифров TLS или полностью пропускать HTTPS.
- Мне нравится, как Certbot автоматически обрабатывает мои сертификаты в Nginx.
- Мне нравится удобная функция Nginx, которую не предоставляет ни один из пользовательских серверов, например, перенаправление с HTTP на HTTPS, балансировка нагрузки, быстрые статические страницы и множество других.
Комментарии:
1. Я вижу преимущество использования обратного прокси для SSL, если у вас уже есть прокси для кэширования / балансировки нагрузки, но мой первоначальный вопрос касается более простого сценария: зачем использовать обратный прокси для SSL, если у вас есть только один веб-сервер (например, Apache) без кэширования / балансировки нагрузки?