Amazon VPC ELB SSL 端口重定向

Amazon VPC ELB SSL 端口重定向

我有一个弹性负载均衡器,打开了 2 个端口,80 和 443。443 上有 SSL。80 和 443 都被重定向到内部服务器端口 80。

问题是我只想在端口 443(启用 SSL)上运行我的网站,而从不以纯文本运行。现在我不确定如何安排服务器上的 ELB 和端口,以便当端口 80 上的请求到来时,它总是重定向到端口 443。

在上述情况下,存在重定向,因为我已在 apache 中将 REWIRTE 规则从 80 重定向到 443。

有什么解决办法吗?

答案1

有两种方法可以解决这个问题。

1)让 apache 在端口 80 和端口 443 上提供服务,并将 ELB 分别重定向到这些端口。

2) 在应用程序级别处理此问题。在呈现任何页面之前,让您的应用程序强制使用 https://。

答案2

来自亚马逊论坛

让我首先陈述您要解决的问题,看看我是否正确:您希望所有通过 ELB 并流向 EC2 实例的用户流量都通过 HTTPS 进行。

如果是这样的话,简短的回答是肯定的,但这需要在AMI和上做一些工作ELB

  1. 按照文档中突出显示的步骤创建自定义 AMI
  2. 将您的SSL证书上传到实例。
  3. 创建一个密钥库文件来存储私钥和证书。
  4. 对 Tomcat 的所有请求都通过 Apache 代理。因此我假设您将终止SSLApache 的连接。第一步,mod_ssl使用以下命令进行安装:

yum 安装 mod_ssl

  1. HTTPS在 上向 Apache添加一个监听器port 443
  2. 将您的 Web 应用程序的证书上传至IAM有关详细信息,请参阅
  3. ELB使用ELB命令行添加监听器
  4. 添加一个侦听器,用于ELB侦听上的流量port 443并使用您上传到的证书将流量路由到port 443实例上IAM

(可选)您可以使用证书身份验证来验证与 EC2 实例之间的流量ELB。您需要在 EC2 实例的密钥库中使用的证书的公钥。

注意:上述步骤允许您终止SSLEC2 实例上的连接。由于 Elastic Beanstalk 使用该端口与主机管理器通信,因此无法完全关闭实例。如果您愿意,port 80可以关闭。port 80ELB

来源:这里

相关内容