如何在AWS Elastic Load Balancer上启用HTTPS?

时间:2016-12-24 21:19:49

标签: amazon-web-services networking https elastic-load-balancer aws-certificate-manager

我正在尝试将HTTPS添加到我的AWS Elastic Load Balancer。

我通过AWS Certificate Manager获得了证书: enter image description here

我在负载均衡器上启用了HTTPS: enter image description here

我确保负载均衡器的安全组在443上接受0.0.0.0/0: enter image description here

在HTTP上访问我的域名时,它可以运行。

但是,尝试使用HTTPS加载我的域时,它不起作用("ERR_CONNECTION_TIMED_OUT"

编辑和更新:

我试图让HTTPS工作的API,不一定是域。域服务是来自S3的静态文件(有角度的Web应用程序),它是一个角度调用负载均衡器(将请求传输到EC2实例)用于DB数据。

当angular通过HTTP直接通过负载均衡器域名调用api时,请求会按预期响应。

当angular通过HTTPS进行相同的api调用时,我收到以下错误:

enter image description here

2 个答案:

答案 0 :(得分:1)

您为域名启用了HTTPS,而不是亚马逊拥有的ELB域。您只能为您拥有的域创建SSL证书。您无法为" mydomain.com"启用SSL然后怀疑以某种方式在一个完全不同的领域工作。您需要更改AngularJS代码,以通过您为其创建SSL证书的自定义域名引用API。您需要将域指向ELB并在ELB上为域安装SSL证书。

答案 1 :(得分:0)

Mark B提供了几乎完整的解决方案。

由于我的javascript代码通过AWS提供的DNS名称调用弹性负载均衡器(ELB),因此无法获取我不拥有的域的SSL证书。

正如Mark B指出的那样,我需要将我的javascript代码指向我拥有的域,并拥有SSL证书。

因此,我可以创建我拥有的域的子域(例如api.mydomain.com),然后指向ELB。

A记录(例如指向IP的域)看起来可能符合需要。

然而,A记录不能指向ELB,因为它的IP可能会改变。

缺少的步骤是使用AWS Route 53将A Record指向别名(Route 53允许您执行此操作),该别名代表我的AWS Elastic Load Balancer。