После введения ALB произошла ошибка смешанного содержимого - PullRequest
2 голосов
/ 17 октября 2019

После введения ALB (Application Load Balancer на AWS) перед одним экземпляром EC2 браузер Chrome показывает ошибку смешанного содержимого. (Я немного отредактировал содержание ошибки по соображениям безопасности)

Mixed Content: The page at 'https://www.sample.com/talk' was loaded 
over HTTPS, but requested an insecure EventSource endpoint 
'http://www.sample.com/api/getData?param1=123&param2=456'. This 
request has been blocked; the content must be served over HTTPS.

Pattern1 не имеет ошибок.

Pattern2 показывает вышеуказанную ошибку. Я не знаю, где проблема в моем технологическом стеке.

Pattern1: ALB(443) => EC2(443)
Pattern2: ALB(443) => EC2(80)

Мой технический стек:

ALB
Apache 2.4
Laravel 5.7
React 16.9

Я попробовал следующее решение, но ошибка все еще произошла.

  1. Доверительный прокси Laravel.
  2. HTTP-запрос к серверу от React записывается как относительный путь (/ api / getData? Param1 = 123¶m2 = 456), поэтому я заменяю код на абсолютный путьуказание протокола и имени домена (https://www.sample.com/api~).
  3. На веб-сервере Apache переписать http на https (я думаю, что это плохая идея).

Это общая проблема?

Если у вас есть какие-либо советы, пожалуйста, помогите мне.

Извините за мой плохой английский.

Ответы [ 2 ]

2 голосов
/ 17 октября 2019

Проблема, с которой вы сталкиваетесь, не имеет ничего общего с ALB, это просто сквозной балансировщик нагрузки, прослушивает один порт и перенаправляет запросы целевой группе при настройке.

Ваши запросызаблокирован браузером из-за смешанного контента. Как вы поняли, вам нужно обслуживать содержимое по одному и тому же протоколу: HTTPS или HTTP.

Есть две возможности, которые я могу вспомнить

  1. Код / конфигурация вашего приложения смешивает содержимое
  2. Или ваш прокси-сервер (Apache) переключаетпротокол для ваших конечных точек
0 голосов
/ 17 октября 2019

Ошибка смешанного содержимого устранена. В моих кодах http-запросов во внешнем интерфейсе моего сервера Laravel есть проблемы.

Я обнаружил, что URL-адреса не подходят. Я не знаю, почему неправильная запись URL приводит к ошибке смешанного содержимого.

Пример 1. В конце URL есть косая черта.

bad:  /api/sample/to/laravel/
good: /api/sample/to/laravel

Пример 2. Обозначение параметра запросане подходит.

bad:  /api/sample/to/laravel/?param1=123
good: /api/sample/to/laravel?param1=123
...