Назад | Перейти на главную страницу

AWS ELB и принудительное использование Https

У меня есть ELB, который изначально был настроен таким образом:

Protocal    Port    Forward-Protocol    Port
Http         80          Http            80
Protocal    Port    Forward-Protocol    Port
Https        443         Https           443

Поскольку я добавил свой сертификат SSL в ELB, а мой экземпляр EC2 находится внутри частной подсети, инженер службы поддержки AWS предложил изменить https на пересылку на http следующим образом:

Protocal    Port    Forward-Protocol    Port
Http         80          Http            80
Protocal    Port    Forward-Protocol    Port
Https        443         Http            80

Он сказал, что это лучшая практика, поскольку ELB уже делает все, что нужно в Https, поэтому нет причин добавлять накладные расходы и на мой экземпляр.

Проблема в том, что в моем экземпляре EC2 структура папок следующая:

Я хочу, чтобы мой сайт выполнял только запросы Https, поэтому я хочу использовать этот код в моем * .80 Virtual:

<VirtualHost *:80>
...
#Force the https
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} https
#Here i need a rule to change the document root.
...
</VirtualHost>

Моя проблема с этим кодом заключается в том, что он будет передавать запрос https, хотя, вероятно, мне нужно изменить корень документа, когда его https.

Могу предположить, что если он попал в http с переадресацией на https - соединение уже защищено.

С вашим правилом перезаписи весь трафик будет безопасным, поэтому файлы в незащищенной папке не нужны.

Я бы удалил существующую папку html и переименовал «безопасную» папку в html.