我在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上连接。
我已经检查了这个问题的类似帖子,似乎没有任何帮助。
非常感谢任何帮助或想法。感谢
答案 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