JHipster Nginx HTTPS Эта страница пытается загрузить скрипты из неаутентифицированных источников

Короче говоря, вот сообщение об ошибке (в консоли Chrome):

Смешанное содержание: страница "https://example.com/#/" была загружена по HTTPS, но запросил небезопасную конечную точку XMLHttpRequest 'http://example.com/login'. Этот запрос заблокирован; контент должен обслуживаться по HTTPS.

И вы увидите это сообщение, если щелкнете значок безопасности (в адресной строке Chrome): Предупреждение системы безопасности Chrome

Чтобы исследовать это дальше, я замечаю, что при загрузке страницы у нас действительно есть запрос к /api/account безопасной конечной точке, и поскольку впервые посетители обычно не проходят проверку подлинности, этот запрос будет перенаправлен на /login путь (где-то?). но через HTTP, а не HTTPS, что в моем случае будет желанием.

Я подозреваю, что это связано с тем, что я использую свое приложение JHipster за обратным прокси-сервером, а мой обратный прокси-сервер отвечает за обслуживание запросов через HTTPS. Другими словами, мое приложение JHipster не знает, что мы используем HTTPS.

Я также попытался отладить свой клиентский код, чтобы увидеть, могу ли я переопределить это поведение, но я заметил, что это перенаправление не запускается ни из auth-expired.interceptor.ts, ни из errorhandler.interceptor.ts.

Так что, скорее всего, это перенаправление происходит из моего серверного кода и, возможно, его можно переопределить, изменив конфигурацию безопасности Spring?

Спасибо, JHipsters! :-)


person SidMorad    schedule 16.04.2018    source источник


Ответы (1)


Установите server.use-forward-headers: true в свой application.yml. Убедитесь, что ваш прокси-сервер также настроен для добавления заголовков X-Forwarded-For и X-Forwarded-Proto. Для Nginx вы можете добавить proxy_set_header X-Forwarded-Proto $scheme; в раздел location. Это исправит ваши 302 редиректа, созданные из заголовков прокси.

Это описано в Spring Boot документы для работы за прокси-сервером, также был связанный Проблема с Github.

person Jon Ruddell    schedule 16.04.2018
comment
Спасибо, Джон! это решило мою проблему, плюс proxy_set_header X-Forwarded-Proto $scheme; должен присутствовать в location разделе конфигурации Nginx, чтобы это работало должным образом. Я также нашел application-prod.yml лучшее место для установки server.use-forward-headers: true. поскольку я не использую Nginx в режиме разработки. Ваше здоровье! p.s. Я достиг 5 ограничений по времени для редактирования предыдущего комментария, поэтому я удаляю его и переписываю этот. Я продолжаю нажимать Enter для перехода к следующей строке! :-) - person SidMorad; 21.04.2018