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

Прерывание SSL в AWS Classic ELB

Да хоть убей, я не могу понять, что делаю не так. Я следил за документами AWS, чтобы добавить SSL в классический ELB (я пробовал NLB, который все еще не помог нам).

По сути, у нас есть веб-сервер, который слушает порт 80. Я хочу, чтобы завершение SSL происходило на ELB.

Я правильно добавил ELB, добавил группу безопасности для его сетевых интерфейсов (даже пробовал опасно разрешить все входящие исходящие). Я также пробовал это для группы безопасности экземпляра.

Когда я перейду к https://mytestserver.com/resource по умолчанию он будет http, но для страницы входа будет отображаться https. После входа в систему он будет использовать http после.

Я читал смешанные вещи в docs / online, в которых говорилось, что для завершения SSL вам необходимо иметь порт прослушивателя 443 elb -> порт экземпляра 80 И также еще одно правило с портом прослушивателя 80 ELB ---> порт экземпляра 80.

Если я попытаюсь удалить правило для порта 80 elb listener -> instance port 80, я могу войти в систему, но страница зависнет.

Он загружает некоторые флеш-компоненты, поэтому я не отключил для этого порты. Я даже попробовал временно «разрешить» все, как ранее упоминалось для группы безопасности для LB и экземпляра.

Это заставляет меня думать, что веб-сервер экземпляра (это внешний клиентский веб-сервер, на котором запущено приложение, используемое нашей командой, которое использует причал) не любит какую-то вставку заголовка, которая происходит.

Когда я удалил прослушиватель порта 80 на elb, я включил свой компьютер с помощью wirehark, и он показал, что он все время пытается подключиться к порту 80 на elb .... любые идеи !?

Спасибо!

P.S. Я должен отметить, что без использования SSL http-версия сайта работает нормально.

Как только вы вошли в систему, ваш бэкэнд отправляет обратно Перенаправление HTTP с новым Расположение указав, куда теперь должен перейти браузер.

Поскольку вы завершаете SSL на ELB, серверное приложение, вероятно, обнаруживает, что трафик поступает на порт 80 через HTTP, и создает ссылку перенаправления как http://mytestserver.com/... (обратите внимание, что это HTTP, потому что сервер считает, что запрос поступил по HTTP, так как ELB с ним общается).

Что вам нужно сделать, так это изменить свое приложение или конфигурацию сервера на всегда вернуть URL-адреса, начинающиеся с https://. Как это сделать, зависит от вашего веб-приложения и / или используемого веб-сервера.

Одно из возможных решений можно найти здесь: AWS перенаправляет на SSL ERR_TOO_MANY_REDIRECTS

Надеюсь, это поможет :)