无法在Elastic Load Balancer(AW​​S)上运行https

时间:2015-02-13 03:34:00

标签: ssl amazon-web-services amazon-ec2

我在ec2-Classic实例前面有一个负载均衡器。我已经通过直接链接到我的负载均衡器的“描述”选项卡中列出的DNS名称值来检查负载均衡器是否正常工作。这为我提供了EC2实例上的网页的主页面。因此我的负载均衡器正在工作。我的负载均衡器和我的EC2实例位于相同的可用区域。

我的负载均衡器已设置SSL证书,我有两个侦听器设置将http(端口80)和https(端口443)转发到实例端口80为http。我的EC2实例的安全组设置为分别在端口80和443上接受带有协议TCP的http和https。虽然我的理解是只有端口80才有用,对吧?证书的数据采用pem格式。我已经为我的实例安全组添加了一个自定义TCP端口范围0 - 65535,用于amazon-elb / amazon-elb-sg。这没什么。

我可以使用http访问我的网站就好了。如果我尝试使用https访问,那么我会在Chrome上收到错误代码:ERR_CONNECTION_REFUSED,并且无法在Firefox上连接。

我已经检查了这个问题的类似帖子,似乎没有任何帮助。

非常感谢任何帮助或想法。感谢

3 个答案:

答案 0 :(得分:10)

您是否确定ELB位于允许端口443上的https的安全组中?

答案 1 :(得分:1)

我在经典和高级负载均衡器上都遇到了类似的问题。我缺少的是,只有在您在DNS中为您的SSL所在域的DNS中记录了A记录之后,才将https转换为http的工作人员,然后才分配给您刚刚创建的负载均衡器。一旦完成,通过新的A记录DNS,一切都会很好。您的实例不需要接受端口443,并且您的LB绝对不应该通过443转发。

希望这对您来说也很简单。

等等,什么是PEM格式的SSL证书?我使用了从下拉列表中获得的Amazon SSL证书。您确定使用了SSL证书吗?

答案 2 :(得分:-1)

在您的描述中,我看到您可能没有按照Amazon的EC2-Classic中的Amazon" Elastic Load Balancing中的步骤6进行操作 - >创建HTTPS / SSL负载均衡器 使用AWS管理控制台 - >配置听众"引导。

在那里,它说你应该在实例协议框中的Load Balancer Protocol [和] HTTPS(Secure HTTP)(...)中配置" HTTPS(...)。",而在您的配置中,您将ELB的443转发到实例中的端口80。

为了进一步参考,这是我正在谈论http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/configure-https-listener.html

的指南

另外,请根据此处指定的规则检查您的SSL证书是否构建良好:http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html