Принудительное использование HTTPS в Symfony PHP вызывает перенаправление l oop за AWS балансировщиком нагрузки - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь принудительно установить HTTPS в моем приложении Symfony PHP. документы на этой топике c кажутся довольно простыми:

# config/routes.yaml
secure:
    path:       /secure
    controller: App\Controller\MainController::secure
    schemes:    [https]

В основном просто добавьте schemes: [https] к маршруту.

Но когда я делаю это в своем приложении и развертываю (в AWS EC2 экземпляр с использованием балансировщика нагрузки), создается впечатление, что создается перенаправление l oop.

enter image description here

В чем здесь проблема?

1 Ответ

2 голосов
/ 05 марта 2020

документы говорят:

Для принудительного использования HTTPS при использовании обратного прокси-сервера или балансировщика нагрузки требуется правильная конфигурация, чтобы избежать бесконечного перенаправления l oop

Что, в свою очередь, приводит вас здесь . Поскольку вы не можете знать IP-адрес своего балансировщика нагрузки (поскольку AWS), в документах говорится:

Некоторые обратные прокси-серверы (например, AWS Elasti c Балансировка нагрузки) не имеют у него нет статического c IP-адреса или даже диапазона, который вы можете выбрать с помощью нотации CIDR. В этом случае вам нужно - очень осторожно - доверять всем прокси.

  1. Настройте веб-сервер (ы) так, чтобы они не отвечали на трафик c от любых клиентов, кроме вашего балансировщики нагрузки. Для AWS это можно сделать с группами безопасности .

  2. Как только вы гарантируете, что трафик c будет поступать только от ваших доверенных обратных прокси, настроить Symfony, чтобы всегда доверять входящему запросу:

// public/index.php

// ...
Request::setTrustedProxies(
   // trust *all* requests
   ['127.0.0.1', $request->server->get('REMOTE_ADDR')],>

   // if you're using ELB, otherwise use a constant from above
   Request::HEADER_X_FORWARDED_AWS_ELB
);

Если вы выполните эти шаги, и все остальное настроено правильно, вы должны быть хорошо до go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...