繁体   English   中英

HTTPS网站的ELB和Apache配置

[英]ELB and Apache configuration for HTTPS website

我正在为https网站设置ELB,我对端口配置有疑问......

现在我在ELB上有这个端口配置:

  • 80(HTTP)转发到80(HTTP)
  • 443(HTTPS)转发到80(HTTP)

在我的实例上,我有这个Apache配置:

显然它正在工作,但这是正确的方法吗?

谢谢您的帮助

席琳

PS:当我开始配置ELB时,我指示443转发到443,但后来我不得不回答奇怪的问题进行身份验证......

问题中描述的配置不起作用,因为它创建了一个永无止境的重定向:443(ELB)转发到80(Apache)转发到443(ELB)转发到80(Apache)转发到443(ELB)等。

所以,我修改了ELB配置:

  • 443(HTTPS)转发到443(HTTPS)
  • 80(HTTP)转发到80(HTTP)

当我创建侦听器443(HTTPS)转发到443(HTTPS)时,我没有回答有关身份验证的问题。 当我查看ELB描述时,我可以看到“后端身份验证:已禁用”

运行状况检查在HTTPS上完成:443

(我还修改了实例安全组:只有负载均衡器可以访问端口80和443上的实例)

更新:

另一种解决方案是在实例上只打开端口80:

  • 80(HTTP)转发到80(HTTP)
  • 443(HTTPS)转发到80(HTTP)

但是要使用X-Forwarded-Proto来确定客户端是使用HTTP还是HTTPS并且只有在X-Forwarded-Proto = http时转发到HTTPS

Apache的示例:

<VirtualHost *:80>
    ...
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    ...
</VirtualHost>

已添加RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker因此不会重定向ELB检查。 有关健康检查的其他解决方案,请参阅https://serverfault.com/questions/470015/how-should-i-configure-my-elb-health-check-when-using-namevirtualhosts-and-redir

有关X-Forwarded-Proto的AWS文档: http//docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/x-forwarded-headers.html#x-forwarded-proto

这是一种有效的方法。 您可以让ELB处理SSL终止。

在某些合规情况下,整个路径必须一直加密到实例。 如果这不适用于您,则您不必进行任何更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM