CakePHP 3.4 DebugKit не будет запрашивать через TLS за балансировщиком нагрузки AWS
Я запускаю свое веб-приложение на AWS Elastic Beanstalk в тех случаях, когда используется балансировщик нагрузки. Я прекращаю HTTPS на балансировщике нагрузки согласно Документации AWS.
Apache настроен на перезапись любых входящих http-запросов в https через эту директиву: <VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>
Кроме того, я использую компонент безопасности CakePHP для перенаправления любых соединений без https-заголовка X-Forwarded-Proto на защищенные соединения.
Несмотря на это, мое приложение все еще запрашивает небезопасные активы DebugKit, и сервер отвечает в открытом виде. Это приводит к тому, что Internet Explorer не запускает сценарии DebugKit, поскольку они не являются защищенным содержимым. Я отключил смешанную защиту содержимого в IE, но это не позволило запустить DebugKit.
В конечном счете, я предпочел бы обслуживать все безопасно, а не прибегать к решению проблемы на стороне клиента. Какие-либо предложения? Что мне не хватает?
1 ответ
Так что я нашел ответ на этот вопрос. По сути, я могу либо отредактировать файл cake/bootstrap.php для поиска X-Forwarded-Proto, либо использовать.extensions, чтобы вручную установить переменную сервера HTTPS.