我可以使用http浏览网站,但不能使用https,我在Chrome中获得ERR_CONNECTION_REFUSED。
我的环境是在Elastic Beanstalk上运行的nodejs(64位Amazon Linux 2015.09 v2.0)上的expressJS服务器。我可以通过端口80 telnet到EC2弹性公共IP,但我不能在端口443上telnet,连接被拒绝。
设置HTTPS的步骤
我通过AWS Certificate Manager创建了SSL证书,并将证书添加到Load Balancer Listeners。
端口配置:
80(HTTP)转发到80(HTTP)
粘性:禁用(编辑)
443(HTTPS,ACM证书:1E21 ...)转发到80(HTTP) 粘性:已禁用
在负载均衡器安全组中,我在端口443 Source 0.0.0.0/0上添加了入站和出站https流量。
在我的EC2 Elastic I.P中,我选择了我的ExpressJS服务器实例,然后在端口443 Source 0.0.0.0/0上添加了入站和出站https流量。
此外,我还将Load Balancer安全组添加到我的ExpressJS服务器安全性中,因为我在另一篇文章中读到您必须将负载均衡器组与服务器实例相关联(不确定这是否是必需的)。
有什么建议吗?
btw,HTTPS流量是否在Load Balancer处终止,然后在端口80内部未加密和处理到服务器?
答案 0 :(得分:4)
解决了它,原来我犯的错误是我在我的AWS网站上添加了我的怪物DNS的记录,并将其指向AWS Public Elastic IP作为A记录,相反,我应该添加我的CNAME将Balance Balancer加载到Monster DNS,一旦我这样做,HTTPS就可以了。
我也放弃了公共弹性IP,因为它不再需要了,而且公众I.P阻止我利用负载均衡器。希望这有助于其他人。