Довольно типичным в случае завершения SSL является то, что внутренний сервер/служба воспримет это как: "конечный пользователь подключается по открытому текстовому протоколу" , другими словами, через обычный http.
Затем он попытается «устранить эту угрозу безопасности», перенаправив пользователя на HTTPS.
------ --------------- ------------------
| ПОЛЬЗОВАТЕЛЬ | ===> HTTP ==> | Балансировщик нагрузки | ==> HTTP ==> | Перенаправление на HTTPS |
------ --------------- ------------------
------ ------------------ -------------------
| ПОЛЬЗОВАТЕЛЬ | ===> HTTPS ==> | Терминация SSL | ==> HTTP ==> | Перенаправление на HTTPS |
------ ------------------ -------------------
Пользователь делает новый запрос (он уже использовал HTTPS, но редирект есть редирект), но он снова будет перенаправлен:
------ ------------------ -------------------
| ПОЛЬЗОВАТЕЛЬ | ===> HTTPS ==> | Терминация SSL | ==> HTTP ==> | Перенаправление на HTTPS |
------ ------------------ -------------------
А потом повторять это снова и снова.
Обычное решение состоит в том, чтобы опционально перенастроить точку завершения SSL для выполнения HTTPS-запросов к внутреннему серверу и удалить функцию перенаправления на HTTPS с внутреннего сервера и перенести ее в Load Balancer.
------ -------------------
| ПОЛЬЗОВАТЕЛЬ | ===> HTTP ==> | Балансировщик нагрузки |
------ | Перенаправление на HTTPS |
--------------------
------ ------------------ ---------
| ПОЛЬЗОВАТЕЛЬ | ===> HTTPS ==> | Терминация SSL | ==> HTTP(S) ==> | Ответить |
------ ------------------ ---------