【问题标题】:SSL domain does not match ec2 DNS nameSSL 域与 ec2 DNS 名称不匹配
【发布时间】:2016-08-02 11:53:08
【问题描述】:

我的网站使用 Firebase 托管,我想向在 AWS EC2 实例上运行的 NodeJS 进程发布 http 帖子。

第一次失败:EC2 是 http,我遇到了混合内容(https 和 http)的错误。

接下来,我在 EC2 实例前面放置了一个负载均衡器,并安装了我的域证书 (www.mydomain.com) 第二次失败:我收到 ERR_INSECURE_RESPONSE 错误,因为 loadbalancer.amazonaws.com 与 www.mydomain.com 不匹配

我无法解决我认为是直截了当的用例。请帮忙。

【问题讨论】:

  • 如果您有api.example.com 的 ssl 证书,那么在访问安装证书的机器时,您需要实际使用该主机名。使用不同的主机名自然不会起作用。是的,这很简单。
  • 感谢@Michael-sqlbot - 这有帮助。

标签: node.js ssl amazon-ec2 dns


【解决方案1】:

您收到 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,请按以下步骤操作:

  1. 为 yourdomain.com 创建一个托管区域。当您在 Route 53 中创建托管区域时,它将完成一些默认记录(如 A、NS 和 SOA 记录)。请记下 NS 记录,因为您稍后会用到它们。
  2. 接下来将现有的区域文件条目(如 MX 记录)从当前的 DNS 提供商复制到新的托管区域。
  3. 当涉及到您希望将流量定向到 ELB 的记录时,您将输入名称,例如 www,然后在类型选项字段下方,您会看到一个单选选项,上面写着“别名:是不”。当您选择“是”时,值字段将消失,您将看到一个显示“别名目标:输入目标名称”的选项。当您单击该字段时,您将在您的帐户中收到一个资源的下拉列表,您可以将其作为别名。只需选择您的负载平衡器。
  4. 点击创建,Route 53 就完成了。
  5. 现在您的所有 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 的流量,您的错误将得到解决。

附注:如果您的实例位于 us-east-1 中,您可以使用证书管理器为您的 ELB 和域获取无限数量的免费标准、SAN 和通配符 SSL 证书。

【讨论】:

    【解决方案2】:

    两个选项。

    您需要向 Amazon 注册您的域,以便您可以在 AWS Route53 中创建托管区域。在那里,您可以创建一条记录以将“mydomain.com”指向您的负载均衡器。

    另一个选项是使用您当前的注册(GoDaddy 或其他人),将您的域转发到您的负载均衡器。您可能需要启用“使用屏蔽转发”,以便它看起来仍然像您的域,但由 AWS 负载均衡器提供服务。

    让我知道什么有效(或无效),我会更新这个答案。

    【讨论】:

      猜你喜欢
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      相关资源
      最近更新 更多