AWS 负载均衡器需要 CNAME 作为 DNS 指针。 www.domain 被覆盖,但根域不被 SSL 证书覆盖
Posted
技术标签:
【中文标题】AWS 负载均衡器需要 CNAME 作为 DNS 指针。 www.domain 被覆盖,但根域不被 SSL 证书覆盖【英文标题】:AWS load balancer requires CNAME for DNS pointer. www.domain is covered, but root domain is not covered by SSL certificate 【发布时间】:2020-02-13 05:16:18 【问题描述】:我在 AWS 上继承了一个应用程序。负载均衡器必须是分布式的,因为 DNS 名称指向
www.crowd88.com. 756 IN CNAME crowd88-prod-elb-1388110015.ap-southeast-2.elb.amazonaws.com.
现在,我无法将根域设置为 CNAME。这没有任何意义,而且 DNS 服务器无论如何也不会让你这样做,而且负载均衡器的 IP 是动态的,所以如果我随时将其设置为负载均衡器的 IP,当该 IP 更改时,https://crowd88.com 就会消失无处。此外,由于 SSL 证书专门用于 www.crowd88.com,https://crowd88.com 无论如何都不会重定向,因为该域不受信任,因此浏览器不会遵循来自该域的重定向指令。
最后我可以通过使用良好的 SSL 证书(例如 this one)来修复。但是,我仍然不明白如何将根域指向动态变化的 IP。
我目前的解决方案是创建一个 digitalocean apache 服务器,每月 5 美元,带有一个免费的letsencrypt 证书,它只是将https://crowd88.com 重定向到https://www.crowd88.com,但亚马逊必须有一些解决这个问题的方法。我只是在他们的文档中找不到任何内容,AWS 对此帐户不提供任何支持。
【问题讨论】:
我觉得如果您使用他们的 Route 53 DNS,所有问题都会消失 如果上述 Route 53 DNS 是一个解决方案,欢迎提出一些关于将 DNS 记录从 godaddy 导出到 Route 53 的建议,因为要导出的 DNS 记录很多,任何输入错误的内容都可能阻止电子邮件或杀死谷歌分析。 【参考方案1】:我有类似的要求,其中 rot 域位于 godaddy 中,子域位于 aws 中。我已经从证书管理器创建了一个 SSL/TLS 证书并分配给负载均衡器,并且 godaddy 有单独的根域 SSL 证书。对于您的问题,可以使用 AWS 中证书管理器中的 SSL/TLS 证书来解决,您可以使用诸如 www.crowd.*.com 之类的通配符来授予对所有子域的访问权限。 在https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html查看更多信息
【讨论】:
您的根域是 DNS 中的 cname 记录吗? AWS 要求负载均衡器的 IP 是动态的。我知道我可以使用通配符 ssl 证书,但这不是问题。问题是 AWS 要求 crowd88.com 和 www.crowd88.com 是 CNAMES以上是关于AWS 负载均衡器需要 CNAME 作为 DNS 指针。 www.domain 被覆盖,但根域不被 SSL 证书覆盖的主要内容,如果未能解决你的问题,请参考以下文章
如何使 DNS ARecord 指向 AWS 弹性 beanstalk 负载均衡器?