Назад | Перейти на главную страницу

Можно ли перенаправить с HTTPS на HTTP за балансировщиком нагрузки?

У меня есть базовое приложение ASP.NET, которое находится за балансировщиком нагрузки F5.

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

Когда приходит небезопасный запрос, мое приложение может использовать Response.Redirect("https://...") для перенаправления защищенного URL без проблем. Однако обратное направление кажется невозможным - я не могу перенаправить с HTTPS к HTTP с помощью Response.Redirect() из моего приложения. URL-адрес остается HTTPS для клиента и не меняется. Может ли F5 предотвратить перенаправление до клиента?

Нужна ли какая-то особая конфигурация, чтобы это произошло?

Да, F5 может перехватывать и переписывать перенаправление на HTTPS.

Найдите профиль HTTP, связанный с вашим виртуальным сервером. Что для параметра «Перезапись перенаправления» установлено? Поскольку вы разработчик приложения, вам, вероятно, понадобится None. (Не забудьте создать новый профиль HTTP для своего приложения, а не редактировать профиль по умолчанию.)

Эта опция предназначена для обработки перенаправлений от приложений, которые на самом деле не поддерживают SSL Offload.

Есть хорошая статья об этой опции на DevCentral.

Кстати, почему вы перенаправляете обратно на HTTP? Если ваш BIG-IP аппаратный (не Virtual Edition), он, вероятно, обрабатывает 500-2000 SSL TPS в зависимости от лицензированных модулей. Какая у вас нагрузка по трафику? Я предполагаю, что вы вряд ли создадите более 500 новый SSL-соединений в секунду. Было бы проще и безопаснее хранить все на HTTPS.

Не уверен, что здесь есть проблема с F5, но вы можете изучить возможность использования модуля IIS Rewrite вместо стандартного объекта Response ... Имеет гораздо больше опций и возможностей и, возможно, даже сможет справиться с вашей проблемой.

http://www.iis.net/download/URLRewrite