我可以使用 http 浏览网站,但不能使用 https,我在 Chrome 中收到 ERR_CONNECTION_REFUSED。
我的环境是在 Elastic Beanstalk 上运行的 nodejs(64 位 Amazon Linux 2015.09 v2.0)上的 expressJS 服务器。我可以在端口 80 上远程登录到 EC2 弹性公共(public) IP,但我不能在端口 443 上远程登录,连接被拒绝。
设置 HTTPS 的步骤
我通过 AWS Certificate Manager 创建了一个 SSL 证书并将该证书添加到负载均衡器监听器。
端口配置:
80 (HTTP) 转发到 80 (HTTP) 粘性:禁用(编辑)443(HTTPS,ACM 证书:1E21...)转发到 80(HTTP) 粘性:禁用
在负载均衡器安全组中,我在端口 443 源 0.0.0.0/0 上添加了入站和出站 https 流量。
在我的 EC2 弹性 IP 中,我选择了我的 ExpressJS 服务器实例,然后在端口 443 源 0.0.0.0/0 上添加了入站和出站 https 流量。
此外,我还将负载均衡器安全组添加到我的 ExpressJS 服务器安全性中,因为我在另一篇文章中读到您必须将负载均衡器组与服务器实例相关联(不确定是否需要这样做)。
有什么建议吗?
顺便说一句,HTTPS 流量是否在负载均衡器处终止,然后在服务器的端口 80 上进行解密和内部处理?
最佳答案
解决了,原来我犯的错误是我在我的 AWS 站点的怪物 DNS 上添加了一条记录,并将其作为 A 记录指向 AWS 公共(public)弹性 IP,相反,我应该添加我的 CNAME负载均衡器到 Monster DNS,一旦我这样做了,HTTPS 就可以工作了。
我还放弃了公共(public)弹性 IP,因为它不再需要了,而且,拥有公共(public) IP 使我无法利用负载均衡器。希望这对其他人有帮助。
关于amazon-web-services - AWS Elastic Beanstalk HTTPS 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564092/