我有一个弹性负载平衡器与两个端口开放,80和443。443上面有SSL。80和443都被重定向到内部服务器端口80。
问题是,我只想在端口443 (启用SSL)上运行我的站点,而不是以明文形式运行。现在我不确定如何安排ELB和服务器上的端口,以便当端口80上的reqest出现时,它总是重定向到端口443。
在上面的例子中,有一个重定向的外观,因为我将REWIRTE规则从apache中的80重定向到443。
有什么解决办法吗?
发布于 2012-05-10 02:33:43
有两种方法可以解决这个问题。
1)让apache在端口80和端口443上服务,ELB分别重定向到这些端口。
2)在应用程序级别处理这一问题。在呈现任何页面之前,让应用程序强制https://。
发布于 2012-09-21 20:25:13
首先,让我陈述一下您试图解决的问题,看看是否正确:您希望所有通过ELB并流到EC2实例的用户流量都发生在HTTPS上。
如果是这样的话,简单的回答是肯定的,但是它需要在AMI和ELB上做一些工作。
SSL证书上载到实例。SSL连接。作为第一步,使用以下方法安装mod_ssl:百胜安装mod_ssl
HTTPS上向Apache添加一个port 443侦听器。IAM。有关更多信息,请参见。ELB使用ELB命令行。ELB,该侦听器侦听port 443上的流量,并使用上传到IAM的证书将流量路由到实例上的port 443。(可选)您可以使用证书身份验证来验证ELB和EC2实例之间的通信量。您需要在EC2实例的密钥存储库中使用的证书的公钥。
注意:以上步骤允许您终止SSL实例的EC2连接。在使用该端口与主机管理器通信时,不可能完全关闭实例上的port 80。如果愿意,可以在port 80上关闭ELB。
来源:这里
https://serverfault.com/questions/387391
复制相似问题