我有一个 React 应用程序,它 ping 运行在 EC2 实例上的 Node Express 服务器(REST api,HTTP)以获取数据服务。我想支持 HTTPS,所以我希望在 Elastic Load Balancer 上安装证书并将其用于 SSL 终止。因此,React 应用程序将在 HTTPS 上 ping ELB,后者将转发并与 HTTP 上的 Express 服务器通信。
问题:我应该在哪个域上创建证书?ELB 的公共 DNS?亚马逊说我无法在亚马逊拥有的 DNS 上获取 SSL 证书:https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-requests.html#failed-additional-verification-required
如果我无法在 ELB 的公共 DNS 上获取 SSL 证书……它如何支持面向互联网的 HTTPS?有什么我不明白的吗?
答案1
确实如此。您无法为amazonaws.com
ELB/ALB 上的端点获取 SSL 证书。
amazonaws.com
但是,只要解析到 ELB/ALB,Amazon Elastic Load Balancer 和 Application Load Balancer 就会接受任何域的连接,而不仅仅是。
因此您需要执行以下操作:
- 使用 Route 53 购买并注册您自己的域名。
- 将您的域名指向您的 ELB/ALB. 确保您可以使用自己的域(而不是一个域
amazonaws.com
)访问您的 React 应用程序。 - 通过 ACM 为您自己的域创建 SSL 证书。
- 将您的 SSL 证书附加到您的 ELB/ALB。
注意:无需通过 Route 53 注册您的域名;任何 DNS 注册商都可以。但使用 Route 53 可提供“一体化”解决方案。