Внутренне перенаправьте nginx на https - PullRequest
0 голосов
/ 22 января 2019

Не уверен, что сценарий возможен, но это то, чего мы хотим достичь.

Клиент -> ПОРТ 80 AWS ELB (изменить нельзя) -> nginx -> Обратный прокси -> apache

Когда / blog запрашивает, его прокси передается на https://1.2.3.4

Однако после того, как обратный прокси-сервер произойдет, URL будет http, а не https.

На основе приведенной выше архитектуры, как мы можем заставить его использовать https без изменения настроек ELB. (внутренний переход к настройкам https nginx)

мой конфиг nginx для обратного прокси -

      proxy_pass https://1.2.3.4/;
      #proxy_pass https://www.example.com/blog;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass_request_headers      on;
      proxy_set_header Host $host;
      proxy_set_header 'Access-Control-Allow-Methods' 'GET, POST, 
      OPTIONS';
       proxy_ssl_session_reuse off;

1 Ответ

0 голосов
/ 22 января 2019

Если вы спрашиваете о том, как преобразовать трафик в HTTPS между ELB и Nginx, если интерфейсный прослушиватель ELB - HTTP, тогда ответ - вы не можете. Потому что, с точки зрения безопасности, не имеет смысла иметь эту функцию. Вы отправляете незашифрованный трафик через незащищенный Интернет, а затем в конце пути, который хотите зашифровать, (какой смысл, трафик уже скомпрометирован - или, по крайней мере, вы должны предположить, что это так).

Если вы действительно не можете изменить внешний прослушиватель ELB, и по какой-либо причине (скорее всего, не самой лучшей) вам необходимо получать HTTPS-трафик на Nginx, тогда единственный вариант - разместить другой сервер между ELB и Nginx, который преобразует входящий HTTP-трафик в HTTPS и передает его в Nginx. Но, если честно, это ужасное решение. Вы, вероятно, должны изменить какую-то другую часть своей системы, а не делать это.

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