【发布时间】:2017-08-10 02:43:43
【问题描述】:
我在 aws 中托管一个域,并希望允许对其进行 https 请求。我已经完成了以下步骤。
- 向 ACM 请求证书,验证电子邮件并颁发。
- 创建了一个带有 http 和 https 侦听器的经典负载均衡器 (LB),通过 http(80) 转发到实例。
- 将证书附加到LB并添加运行网站的实例。
- 确保附加到实例和 LB 的安全组在入站规则中有 http(80) 和 https(443)。
- LB 和实例安全组的唯一出站规则是(所有流量 - 全部 - 全部 - 0.0.0.0/0)。
然后我等待实例“inService”并通过浏览到它的 DNS 并打开它来测试 LB。还打开了 http://mydomain.com,但是当我尝试 https://mydomain.com 时,我收到一条消息,提示浏览器无法访问服务器。
经过一番搜索,我添加了以下 2 条记录。
- 名称为“mydomain.com”且值为“LB domain.com”的记录。
- 名称为“www”且值为“mydomain.com”的 CNAME 记录。
我又试了一次,结果和上面一样。 最后我得到了一个答案,我应该在我的实例服务器中启用 https。
当我这样做并浏览时,我得到一个“安全连接失败”,错误代码为“SSL_ERROR_RX_RECORD_TOO_LONG”。
看起来 LB 没有终止对我的域的 https 请求。
知道我做错了什么!
更新:我删除了我创建的 A 记录,但是当我进行 DNS 查找时,我发现了一个指向我的弹性 ip 的 A 记录。虽然我有 CNAME 记录,但 DNS 查询显示我没有 CNAME 记录。
【问题讨论】:
-
“我应该在我的实例服务器中启用 https”不正确。您是否等待 DNS 更改传播?另外你为什么在你的问题标题中提到“ssh”?
-
是的,域已经在没有 LB 的情况下运行。添加 LB 后,我一直等到实例状态变为“服务中”。这之后我需要等待吗?我的意思是 ssl 我编辑了它
-
当您进行 DNS 更改时,您必须等待更改传播。这与您的实例在负载均衡器中“服务”完全无关。尝试从本地计算机运行
nslookup并验证域现在指向负载平衡器。 -
它返回了与我的实例关联的弹性 IP。它应该返回负载均衡器的 ip 吗?
-
@AbdoSaiedAnwar 是的,它需要返回负载均衡器的地址。 DNS 更新可见性的延迟取决于您如何在 old DNS 记录上设置 TTL - 在您更改它之前。 “传播”几乎是瞬时的,但旧记录需要超时才能看到新记录。
标签: amazon-web-services ssl amazon-ec2 https elastic-load-balancer