我在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上连接 .
我已经检查了这个问题的类似帖子,似乎没有任何帮助 .
任何帮助或想法将不胜感激 . 谢谢
2 回答
您是否确保ELB位于允许端口443上的https的安全组中?
在您的描述中,我看到您可能没有按照Amazon的“Amazon EC2-Classic中的弹性负载 balancer - >使用AWS管理控制台创建HTTPS / SSL负载均衡器 - >配置监听器”指南中的步骤6 .
在那里,它说你应该在实例协议框中配置“负载均衡器协议[和] HTTPS(安全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