如何配置弹性 beantalk 以将 https 与 ACM 证书一起使用?
Posted
技术标签:
【中文标题】如何配置弹性 beantalk 以将 https 与 ACM 证书一起使用?【英文标题】:How do I configure elastic beanstalk to use https with an ACM certificate? 【发布时间】:2016-08-10 14:57:54 【问题描述】:我使用 AWS 证书管理器创建了 ACM 证书。
我按照本指南:https://medium.com/@arcdigital/enabling-ssl-via-aws-certificate-manager-on-elastic-beanstalk-b953571ef4f8#.kjh1mqdzq 使用 aws cli 配置负载均衡器。
当我查看负载均衡器时,我现在看到 443(HTTPS, ACM Certification:[arn]) 在端口配置下转发到 80 (HTTP)
但是,如果我在浏览器中输入 https,我会收到来自 chrome 的“您的连接不是私人的”消息。
还有没有我遗漏的步骤?
【问题讨论】:
【参考方案1】:您尚未提供此信息,但我假设您有 www.yourdomain.com 的 CNAME 解析为 loadbalancer.amazonaws.com。
您收到 ERR_INSECURE_RESPONSE 错误,因为您使用的是解析为 loadbalancer.amazonaws.com 的 CNAME。由于您的证书适用于 www.yourdomain.com,因此它给出了一个有效错误。 CNAME 和 Alias 的操作方式略有不同。使用 CNAME 时,流量不是您域的有效别名,因此如果您尝试保护它,您将收到错误消息。但是,当您为 www 和别名为 loadbalancer.amazonaws.com 创建 A 记录时,现在 www.yourdomain.com 上来自 loadbalancer.amazonaws.com 的任何流量都是您的域的有效流量,您将不再有这些错误。
为了在 loadbalancer.amazonaws.com 上终止 www.yourdomain.com 的安全流量,您需要有一个 A 记录,该记录将在那里别名。不幸的是,ELB 只提供一个 DNS 条目,没有 IP 地址,但是许多 DNS 提供商(例如 GoDaddy)不允许您拥有一个别名为 DNS 地址的 DNS A 记录;他们要求您使用 IP 地址的别名。这让生活变得更加复杂。
有几种方法可以实现这一点(SSL 不支持 URL 转发和屏蔽),但最简单的解决方案是使用 Route 53。使用 Route 53 不需要您注册或将您的姓名转移到 AWS托管区域每个域每月只需 0.50 美元。
要使用 Route 53,请按以下步骤操作:
为 yourdomain.com 创建一个托管区域。当您在 Route 53 中创建托管区域时,它将完成一些默认记录(如 A、NS 和 SOA 记录)。记下 NS 记录,因为您稍后会用到它们。 接下来将现有的区域文件条目(如 MX 记录)从当前的 DNS 提供商复制到新的托管区域。 当涉及到您希望将流量定向到 ELB 的记录时,您将输入名称,例如 www,然后在类型选项字段下方,您会看到一个单选选项,上面写着“别名:是不”。 - - 当您选择是时,值字段将消失,您将看到一个选项,显示“别名目标:输入目标名称”。当您单击该字段时,您将在您的帐户中收到一个资源的下拉列表,您可以将其作为别名。只需选择您的负载平衡器。 点击创建,Route 53 就完成了。 现在您的所有 dns 记录都已复制,您将前往注册商并将名称服务器更改为 Route 53 为您提供的名称。现在 Route 53 正在为您处理 DNS。 loadbalancer.amazonaws.com 是 www.mydomain.com 的有效别名。由于 loadbalancer.amazonaws.com 现在是 www.yourdomain.com 的有效别名,当您访问 www.yourdomain.com 时,您位于 loadbalancer.amazonaws.com 的 ELB 将终止作为 www.yourdomain.com 的流量,您的错误将得到解决。
【讨论】:
以上是关于如何配置弹性 beantalk 以将 https 与 ACM 证书一起使用?的主要内容,如果未能解决你的问题,请参考以下文章