2014-02-16 5 views
0

Я работаю с эластичным бобовым стеком и испытываю некоторые проблемы с конфигурацией SSL.Упругий балансировочный груз и https

У меня есть среда, состоящая из балансировки нагрузки и одного экземпляра EC2 на данный момент. Балансировщик нагрузки имеет слушателей на портах 443 и 80. Экземпляр EC2 в среде работает с tomcat на порту 80. У меня есть сертификат в балансировщике нагрузки, и я могу получить доступ к сайту на портах 443 и 80, и все работал отлично.

Проблема заключается в том, что я хочу, чтобы все запросы были перенаправлены на порт 443, даже те, которые входят в порт 80. Я искал высокий и низкий способ для этого, не меняя конфигурацию безопасности. Это небольшой webapp, работающий на Tomcat 7 с Spring Security и MVC. Я попытался с помощью

<sec:intercept-url pattern="/**" requires-channel="https"/> 

, но у меня есть несколько страниц, которые не являются частью цепочки фильтров в качестве такого

<sec:http pattern="/login.html" security="none" /> 

Это похоже на то, что можно было решить при балансировке нагрузки, но у меня нет большого опыта работы с настройкой SSL. Любая помощь приветствуется.

ответ

2

Ваш ELB принимает соединения на 443 и 80, но он завершает SSL там и связывает ваш код только на 80. SSL в основном от браузера до ELB. Код ELB для бэкэнд на Beanstalk всегда на 80.

Так что любое правило, ожидающее соответствия на основе входящего протокола, не работает. Вместо этого вы должны использовать этот заголовок «X-Forwarded-Proto:» (который будет установлен ELB), а затем выполните правило пересылки.

+0

Я попытаюсь создать фильтр, который использует этот заголовок. Наверное, я надеялся, что есть способ, чтобы ELB делал перенаправление до того, как запрос попадет в мой код. – user3316434

+0

Фильтр работал, я смог перенаправить https на нужные страницы, проверив этот заголовок. Я новый пользователь и не могу ответить на мои собственные вопросы, но я отправлю код, когда смогу. Спасибо за помощь. – user3316434

+0

Было хорошо, если у ELB была такая функциональность, но они не были. Нам нужно сделать это так, как я предложил в коде приложения. Хорошо, что вы в состоянии это сделать! –

Смежные вопросы