Получение http в заголовке Location, когда исходный запрос был сделан через https - PullRequest
0 голосов
/ 03 января 2019

Мои вопросы:

1) Почему я получаю http в качестве схемы в заголовке Location, когда исходный запрос из браузера был сделан с помощью https?

2) Это проблема с балансировщиком нагрузки «дикой бабочки»?

Заголовок моего запроса:

method: POST
scheme: https
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
content-length: 39
content-type: application/x-www-form-urlencoded
origin: https://10.43.201.207
referer: https://10.43.201.207/myapp/login.html

Мой заголовок ответа:

content-length: 0
date: Thu, 03 Jan 2019 04:55:42 GMT
location: http://10.43.201.207/myapp/dashboard.html?init=1
server: WildFly/12
set-cookie: APP_AUTH=leTPWYd1222zsrrtRRtgpuEWEWc7pR0CBuNPYPT5QHbGn_Db7ICK; path=/; secure; HttpOnly
set-cookie: JSESSIONID="leTee33333PWYdSDSDweetRRtgpuc7pR0CBuNPYPT5QHbGn_Db7ICK.master-0:master-server"; Version=1; Path=/myapp; Secure; HttpOnly
status: 302
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-powered-by: Undertow/1
x-xss-protection: 1; mode=block

Ответы [ 3 ]

0 голосов
/ 14 марта 2019

Ниже приведено подробное объяснение решения вышеуказанной проблемы:

У нас есть балансировщик нагрузки, расположенный перед двумя серверами wildfly.Балансировщик нагрузки обрабатывает рукопожатие SSL и форсирует весь трафик через https, узлы wildfly не имеют сертификатов на них, а трафик между балансировщиком нагрузки и серверами не зашифрован, узлы wildfly ничего не знают о SSL. Связь между балансировщиком нагрузкиа узлы-мухи - по протоколу http.

Когда пользователь переходит на защищенную страницу, например, https://someip/app

Поток запросов выглядит следующим образом:

  • Клиентский браузер для балансировки нагрузки через https
  • Балансировщик нагрузки для узлов wildlfy по протоколу http.
  • Добавлено proxy-address-forwarding="true" в http слушателе
узла сервера wildlfy*
0 голосов
/ 23 мая 2019

Другой вариант - добавить балансировщик нагрузки к ответу сервера в Strict-Transport-Security, например:

Strict-Transport-Security max-age=300;

Это эффективно сообщит клиенту, что он всегда должен использовать https для связиваш сервер.

0 голосов
/ 12 марта 2019

Балансировщик нагрузки отключает TLS и пересылает запрос приложению как HTTP? Если это так, то приложение при выполнении перенаправления, вероятно, использует тот же протокол, по которому был получен запрос.

Если это так, либо заставьте приложение принудительно вызывать https, либо заставьте балансировщик нагрузки переписать ответы, возвращающиеся через него.

Вам может потребоваться установить proxy-address-forwarding="true" и / или request_header_add X-Forwarded-Proto https.

...