Мой веб-сайт работает в экземпляре EC2, Apache2 прослушивает 80.
Поскольку он должен использовать https, я настроил AWS Load Balancer. Добавлен сертификат ACM в балансировщик нагрузки.
Добавлен dns балансировщика нагрузки в псевдоним домена в Route53.
И балансировщик нагрузки прослушивает 443 и перенаправляет на 80 инстанса EC2.
Настроена группа безопасности EC2 для приема подключений только от группы безопасности ELB через порт 80.
Теперь проблема в том, что когда я захожу на свой сайт, он показывает контент без js и css.
Сказать: «Эта страница пытается загрузить скрипты из неаутентифицированных источников».
Эти скрипты и таблицы стилей находятся в экземпляре EC2.
Как правильно сделать, чтобы все скрипты, таблицы стилей, изображения загружались через https?
Это проблема приложения, а не сервера, если вы хотите, чтобы ELB отключал SSL.
Он завершил ssl на ELB и возвращает http на веб-сервер. Итак, ваше приложение видит нормальный HTTP-трафик. ELB добавляет специальный заголовок к трафику, чтобы все, что находится за ним, знали, что трафик был SSL, на случай, если он захочет отправить обратно такие вещи, как return links / js / css / images с https: //
Он отправляет следующий заголовок обратно
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto
Ваше приложение должно быть достаточно умным, чтобы сказать: "Хорошо, это https" ИЛИ этот заголовок установлен так, что его ssl .. если не http.