2015-11-10 2 views
1

У нас есть веб-приложение, размещенное на сервере Tomcat (с кластеризацией), с двумя веб-серверами Apache, расположенными спереди, и F5 load balance5 перед apache. SSL настроен в балансировщике нагрузки F5. Теперь, когда кто-то обращается к нашему приложению, используя безопасный URL-адрес балансировки нагрузки, наше веб-приложение java не оценивает request.isSecure как истину. Есть ли какой-либо параметр, который мне нужно включить, чтобы включить это.Балансировщик нагрузки F5 с веб-сайтом Apache и Tomcat SSL Issue

В нашем вебе-сервере Apache мы имеем следующую конфигурацию с использованием прокси-балансира

ServerName ip:80 

ProxyPass /balancer-manager ! 
ProxyPass/balancer://mycluster/ stickysession=JSESSIONID nofailover=Off 
ProxyPassReverse/balancer://mycluster/ 
<Proxy balancer://mycluster> 
      BalancerMember ajp://ipapp1:8009 route=jvm1 loadfactor=1 
      BalancerMember ajp://ipapp2:8009 route=jvm2 loadfactor=1 status=+H 
      ProxySet lbmethod=byrequests 
</Proxy> 

Я пытался изменить детали разъема в server.xml из кота, добавив схемы = «HTTPS», безопасный = "истинной "и proxyPort =" 443 " для 8080, но это не сработало.

Что мне здесь не хватает?

+0

Если вы завершения SSL на BIG-IP , почему вы пытаетесь проверить шифрование на веб-сервере позади него? Вы отправляете незашифрованное соединение, поэтому оно должно считаться незащищенным. Если вы не беспокоитесь о производительности, подключите SSL-соединение и переконфигурируйте его с помощью профиля SSL сервера с BIG-IP на веб-сервер, чтобы удовлетворить это. Кроме того, вам нужно будет написать какой-то iRule в BIG-IP, чтобы уведомить веб-сервер о том, что соединение было ранее зашифровано, и ваше приложение проверяет эту строку. – Chase

+0

На самом деле мы используем openSAML для SSO. Мы получаем «URL-адрес конечной точки saml, не соответствующий ошибке», потому что URL-адрес конечной точки имеет https, а на сервере приложений (tomcat), когда мы пытаемся получить протокол запроса, очевидно, что мы получаем http, так как https завершается при балансировке нагрузки. Поэтому я пытался изучить варианты того, как я могу сделать tomcat осведомленным об использовании https. –

ответ

1

Вам нужно будет проверить ваше приложение, чтобы узнать, поддерживается ли оно, но обычно заголовок пересылается, передавая протокол запроса. Традиционно это был заголовок X-Forwarded-Proto, но номенклатура X -... устарела. Заголовок Forwarded теперь поддерживает то, что было X-Forwarded-For, X-Forwarded-Proto и т. Д. В одном заголовке. Тем не менее, по-прежнему существует широкая поддержка устаревшего метода, поэтому любой из подходов должен работать в ожидании поддержки приложений.

X-Forwarded-Proto: протокол HTTPS

или

Forwarded: прото = HTTPS

Новые стандарты описаны в RFC 7239