SSL 终止负载均衡器后面的 EC2 实例上的 SSL 重定向

SSL 终止负载均衡器后面的 EC2 实例上的 SSL 重定向

我正在尝试将 Web 应用程序中的所有 url 重定向到 https。

我在弹性负载均衡器后面有一个 ec2 实例。SSL 在负载均衡器上终止。

任何重定向的尝试最终都会给我熟悉的“此页面的请求方式永远无法完成”。

负载均衡器将 443 和 80 转发到实例上的端口 80。

这就是我的.htaccess 中所拥有的。

RewriteCond %{X-FORWARDED-PROTO} !=on  
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

有人知道如何实现这一点吗?非常感谢,

答案1

未经测试..但我尝试了这个

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto

答案2

麦克风的答案基本正确,但需要指出的是,负载均衡器仍需要执行其健康检查例程,以确保 ec2 实例仍然正常运转。这可以通过额外的RewriteCond

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

...alive.html您的健康检查文件的名称是哪里。

相关内容