AWS Elastic Beanstalk HTTPS 不起作用
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk HTTPS 不起作用【英文标题】:AWS Elastic Beanstalk HTTPS not working 【发布时间】:2016-08-02 12:34:37 【问题描述】:我可以使用 http 浏览网站,但无法使用 https,我在 Chrome 中得到 ERR_CONNECTION_REFUSED。
我的环境是在 Elastic Beanstalk 上运行的 nodejs(64 位 Amazon Linux 2015.09 v2.0)上的 expressJS 服务器。我可以在端口 80 上远程登录到 EC2 弹性公共 IP,但我不能在端口 443 上远程登录,连接被拒绝。
设置 HTTPS 的步骤
我通过 AWS 证书管理器创建了一个 SSL 证书并将该证书添加到负载均衡器侦听器。
端口配置: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 流量。
此外,我还将负载均衡器安全组添加到我的 ExpressJS 服务器安全性中,因为我在另一篇文章中读到您必须将负载均衡器组与服务器实例相关联(不确定这是必需的)。
有什么建议吗?
顺便说一句,HTTPS 流量是否在负载均衡器处终止,然后在服务器的端口 80 上进行未加密和内部处理?
【问题讨论】:
您的 ElasticBeanstalk 环境是否位于 VPC 内? 感谢您的回复,我是 AWS 新手,如何判断我的 EB 环境是否在 VPC 中? @hephalump - 当我查看 EC2 仪表板并单击弹性公共 IP 时,范围是 vpc。此外,当我单击实例时,我看到辅助私有 IP 具有 VPC ID 【参考方案1】:解决了,原来我犯的错误是我在我的怪物 DNS 上为我的 AWS 站点添加了一条记录,并将其指向 AWS 公共弹性 IP 作为 A 记录,相反,我应该添加我的 CNAME负载均衡器到 Monster DNS,一旦我这样做了,HTTPS 就可以工作了。
我还放弃了公共弹性 IP,因为它不再需要,而且公共 IP 使我无法利用负载均衡器。希望这对其他人有所帮助。
【讨论】:
以上是关于AWS Elastic Beanstalk HTTPS 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk CLI 安装错误