GCP: Как заставить ssl работать через балансировщик нагрузки ssl-прокси? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть внутренний сервер HTTP в Google Cloud за балансировщиком нагрузки SSL-прокси.

Если клиент отправляет HTTP-запрос на порт 80, балансировщик нагрузки возвращает 404. Если возможно, я бы хотел перенаправить запрос порта 80 на порт 443.

Мой первый вопрос может ли SSL Proxy Load Balancer прослушивать порт 803 и порт 443, но прерывать SSL только на порту 443?

Если это так, мой второй вопрос: может ли сервер каким-то образом определить, прекратил ли балансировщик нагрузки ssl или нет?

Если я использую балансировщик нагрузки HTTP (S), все это тривиально, и я могу просто посмотреть на X-Forwarded-Proto, но в этом случае мы используем балансировщик нагрузки tcp, без Заголовки HTTP, поэтому мне интересно, возможно ли то же самое. Протокол PROXY, похоже, не содержит эту информацию.

Возможно, балансировщик нагрузки может пересылать трафик c с порта 80 на порт 8080 на бэкэнде и трафик c с порта 443 на порт 8443 на бэкэнде, поэтому мы знаем, откуда он пришел. Поддерживает ли SSL Proxy Load Balancer что-то подобное?

Я не могу использовать балансировщик нагрузки HTTP (S) в моей ситуации, потому что мне нужно запретить HTTP / 2.

Я также мог бы просто используйте TCP-прокси и обработайте SSL-завершение в бэкэнде, но я хочу использовать управляемые сертификаты Google.

1 Ответ

0 голосов
/ 23 марта 2020

Мой первый вопрос: может ли SSL Proxy Load Balancer прослушивать порт 803 и порт 443, но прерывать SSL только на порту 443?

Нет. Балансировщик нагрузки прокси-сервера SSL не понимает трафик уровня 7 c (HTTP / HTTPS).

Если вы хотите, чтобы балансировщик нагрузки перенаправлял пользователей на HTTPS, вам нужно будет использовать балансировщик нагрузки HTTP (S) или другой балансировщик нагрузки уровня 7.

Поскольку вы хотите запретить HTTP / 2, вам необходимо создать собственную настройку балансировки нагрузки.

Возможно, балансировщик нагрузки может пересылать трафик c из порта 80 в порт 8080 на бэкэнде и трафик c из порта 443 в порт 8443 на бэкэнде, чтобы мы знали, откуда он пришел. Поддерживает ли SSL Proxy Load Balancer что-то подобное?

Нет. SSL Proxy Load Balancer поддерживает зашифрованный трафик TLS c и не поддерживает незашифрованный трафик c. Порт 80 (HTTP) обычно не зашифрован.

Кроме того, поддерживаются только эти TCP-порты 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883 и 5222.

...