1

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

我通过 AWS Certificate Manager 获得了证书: 在此处输入图像描述

我在负载均衡器上启用了 HTTPS: 在此处输入图像描述

我确保负载均衡器的安全组在 443 上接受 0.0.0.0/0: 在此处输入图像描述

当通过 HTTP 访问我的域时,它可以工作。

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


编辑和更新:

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

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

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

在此处输入图像描述

4

2 回答 2

1

您为您的域名启用了 HTTPS,而不是 Amazon 拥有的 ELB 域。您只能为您拥有的域创建 SSL 证书。您不能为“mydomain.com”启用 SSL,然后期望它以某种方式在完全不同的域上工作。您需要更改 AngularJS 代码以通过您创建 SSL 证书的自定义域名引用 API。您需要将域指向 ELB,并在 ELB 上安装域的 SSL 证书。

于 2016-12-26T16:11:32.857 回答
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 记录指向代表我的 AWS Elastic Load Balancer 的别名(Route 53 允许您这样做)。

于 2016-12-27T03:48:43.983 回答