我在负载均衡器后面的实例上运行AWS Elastic Beanstalk上的webapp。我按照AWS Documentation在负载均衡器处终止HTTPS。
Apache设置为通过此指令将任何入站http请求重写为https:<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>
此外,我使用CakePHP的安全组件将没有X-Forwarded-Proto https标头的任何连接重定向到安全连接。
尽管如此,我的应用程序仍在请求非安全的DebugKit资产,并且服务器正在明确响应。这导致Internet Explorer不运行DebugKit脚本,因为它们不是安全内容。我在IE中禁用了混合内容保护,但这并没有允许DebugKit运行。
最终,我更愿意安全地提供所有服务,而不是采用客户端解决方案。有什么建议?我错过了什么?
答案 0 :(得分:0)
所以我在this question找到了答案。基本上,我可以编辑cake / bootstrap.php来查找X-Forwarded-Proto,或者使用.extensions手动设置HTTPS服务器var。