X-Forwarded-Proto не проходит через AWS ALB Sandwich с межсетевым экраном Palo Alto VM - PullRequest
0 голосов
/ 06 февраля 2019

Мы используем виртуальный межсетевой экран Пало-Альто с сэндвич-топологией ELB и не можем получить правильный X-Forwarded-Proto, чтобы вернуться на веб-сервер.Завершение HTTPS происходит на внешнем балансировщике нагрузки, затем выполняется как HTTP через оставшуюся часть стека.При использовании единого балансировщика нагрузки у нас нет проблем с получением правильного заголовка X-Forwarded-Proto, будь то HTTP или HTTPS.Однако в сэндвич-топологии мы получаем HTTP как X-Forwarde-Proto, несмотря ни на что.

Нашей главной проблемой для необходимости заголовка является перенаправление всех запросов к HTTPS, что может быть выполнено на брандмауэре PAN, но это также оказалось неуловимым.

1 Ответ

0 голосов
/ 07 февраля 2019

Это ожидаемое поведение, и, скорее всего, по замыслу - если ALB прошел сквозное X-Forwarded-Proto, его можно было бы подделать, и у него не было никакой возможности разрешать исключения ... поэтому он всегда перезаписывается.

Вместо этого вы можете использовать балансировщик сетевой нагрузки для внутреннего использования.Поскольку они выполняются на уровне 4, они не манипулируют заголовками.

Или, если внешний балансировщик является ALB, вы можете создать там правило для перенаправления всех HTTP-запросов в HTTPS в пределахбалансировщик.

С помощью действий перенаправления балансировщик нагрузки может перенаправлять входящие запросы с одного URL на другой URL.Это включает в себя возможность перенаправлять HTTP-запросы в HTTPS-запросы, что позволяет вам достичь цели соответствия безопасности безопасного просмотра, повысить рейтинг в результатах поиска и высокий рейтинг SSL / TLS для вашего сайта.

https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/

Одна небольшая «ошибка» в перенаправлениях ALB заключается в том, что вы должны явно указать порт назначения как 443, в противном случае балансировщик сохранит исходный порт и запишетперенаправить на https://example.com:80/, который, конечно, не будет работать.

...