我的网站由Firebase托管托管,我想向在AWS EC2实例上运行的NodeJS进程发布http帖子。
首先失败:EC2是http,我有混合内容错误(https和http)。
接下来,我在EC2实例的前面放入了一个负载均衡器,并安装了我的域名证书(www.mydomain.com) 第二次失败:我收到ERR_INSECURE_RESPONSE错误,因为loadbalancer.amazonaws.com与www.mydomain.com不匹配
我最终解决了我认为简单易用的问题。请帮忙。
答案 0 :(得分:1)
两个选项。
您需要在亚马逊注册您的域名,以便在AWS Route53中创建托管区域。在那里,你可以创建一个记录来指向" mydomain.com"到您的负载均衡器。
另一个选项是使用您当前的注册表(GoDaddy或其他人),将您的域转发到您的负载均衡器。您可能需要启用"使用屏蔽转发"因此它仍然看起来像您的域,但由AWS负载均衡器提供服务。
让我知道什么有用(或者没有),我会更新这个答案。
答案 1 :(得分:1)
您收到ERR_INSECURE_RESPONSE错误,因为您正在使用正在解析为loadbalancer.amazonaws.com的CNAME。由于您的证书适用于www.yourdomain.com,因此它会提供有效的错误。 CNAME和Alias的运作方式略有不同。使用CNAME时,流量不是您网域的有效别名,因此,如果您尝试保护该网址,则会收到错误消息。但是,当您为www和别名创建A记录时,对于loadbalancer.amazonaws.com,来自www.balancew.com上的loadbalancer.amazonaws.com的任何流量都是您域名的有效流量,您将不再有这些错误。< / p>
要在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,请按照以下步骤操作:
现在,Route 53正在为您处理DNS。 loadbalancer.amazonaws.com是www.mydomain.com的有效别名。由于loadbalancer.amazonaws.com现在是www.yourdomain.com的有效别名,当您访问www.yourdomain.com时,您的ELB at loadbalancer.amazonaws.com将终止流量www.yourdomain.com并且您的错误将得到解决。
附注:如果您的实例位于us-east-1,您可以使用证书管理器为您的ELB和域获取无限数量的免费标准,SAN和通配符SSL证书。