Наше окружение выглядит следующим образом:
HLB (Ace) -> резервные серверы Apache -> Backend серверы Websphere
Защищенный трафик поступает в балансировщик нагрузки, где расшифровывается SSL-сертификат. Затем запрос пересылается на один из двух веб-серверов apache. Затем Apache при необходимости пересылает запрос на соответствующий сервер приложений Websphere. Websphere отвечает клиенту по тому же пути.
Наша сетевая группа сообщает нам, что SSL не должен устанавливаться на веб-серверах, поскольку он препятствует отслеживанию пакетов.
Для нашего собственного написанного приложения мы перенаправляем относительно, поэтому, когда URL-адрес перенаправляется, он остается HTTPS снаружи как. Однако у нас есть купленный продукт, который обрабатывает, а затем отправляет абсолютное перенаправление обратно клиенту по протоколу HTTP. Мы считаем, что это связано с тем, что apache получает запрос в незашифрованном виде.
Мы пытаемся найти способ, чтобы apache переписал протокол на https для приложения в Websphere (приложение - Vignette Portal)
Я пробовал простой
<Location /LocationINeed>
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Location>
но это не сработало. Согласно тому, что я читал, это абсолютное право прямого перенаправления клиенту и в конечном итоге создает цикл.
Я довольно неопытный администратор apache и провел день в поисках в Интернете MOD_substitutem и mod_rewrite, но все мои попытки не увенчались успехом.
Если вы столкнулись с этим, мне бы хотелось услышать, как вы решили проблему.
Если на страницах, обслуживаемых вашим приложением, есть абсолютные ссылки, которые используют http://
чтобы указать на себя, вам нужно будет исправить приложение.
Если это просто о Location
заголовки, вы можете попробовать подход, похожий на этот: использовать mod_headers
и используйте правило в следующих строках:
Header edit Location ^http://www.example.com/hudson/ https://www.example.com/hudson/
РЕДАКТИРОВАТЬ:
Немного истории о том, почему это происходит: причина, по которой это проблема с HTTP Location
заголовки, а не относительные ссылки на странице, это то, что в Location
заголовок всегда требует абсолютного URI в соответствии со спецификацией:
[...] Значение поля состоит из единственного абсолютного URI.
Location = "Location" ":" absoluteURI
(Честно говоря, я думаю, что некоторые браузеры могут понимать относительный URI и интерпретировать его относительно исходного запроса, который они отправили. Однако это будет вне спецификации, и некоторым инструментам / браузерам это просто не понравится.)