运行python项目的EC2实例上的HTTPS
我在运行python项目的EC2实例上很难解析HTTPS。请求刚好超时(错误连接超时)。不过,HTTP运行正常。我采取的步骤如下运行python项目的EC2实例上的HTTPS,python,django,amazon-web-services,amazon-ec2,Python,Django,Amazon Web Services,Amazon Ec2,我在运行python项目的EC2实例上很难解析HTTPS。请求刚好超时(错误连接超时)。不过,HTTP运行正常。我采取的步骤如下 我已在ACM中为以下域创建了证书:*.mywebsite.com和mywebsite.com 我已按如下方式设置了53号路线: A记录上的路由策略很简单 我进入了EC2实例负载平衡器的侦听器,将端口从80(HTTP)更改为443(HTTPS),并添加了证书 注意:“转发到”是在端口80(HTTP)上运行的目标组。我读到这是正确的 然后,我进入了我的安全组的入站规
谢谢你的帮助!一旦我们在这里得到答案,我将写一篇指南,并将其发布在youtube上。首先让我向您简要介绍一下在这种情况下请求的流程 正如您正确猜测的那样,负载平衡器(具体来说是应用程序负载平衡器)可以处理SSL流量。这也意味着从负载平衡器到源服务器(本例中提到的目标组),只有http通信流将流动,而不是https。因此,您不必担心在服务器上处理证书。然后,来自源服务器的响应再次封装在SSL隧道中,并由ALB发送回客户端 这意味着您的最终用户应该至少能够连接到负载平衡器端口443,也可以连接到端口80(可以重定向到443) 这意味着您的负载平衡器的安全组的端口443(可选80)应向世界或您的用户开放 在源服务器和ALB之间,流量在应用程序运行的端口中流动,这就是服务器的安全组应该允许访问ALB的端口 换言之,服务器(EC2)安全组应允许应用程序运行的任何端口上的ALB。 注意:这不必是80或443,也可以是8080,只要目标组知道它并在该端口上转发请求 现在回答您的问题: a)鉴于这是一个python/Django项目,是否可以通过aws网站启用HTTPS for EC2,或者我是否需要添加配置文件并部署到我的实例?
你不必这么做。正如我提到的,加密/解密可以卸载到ALB。在文档中阅读更多关于它的信息 b)我是否需要创建在HTTPS上运行的目标组?
这建立在前面的问题之上,不,你不必这样做。app server/EC2实例不应与此相关 c)在端口80和端口443的负载平衡中,还是只在端口443上需要侦听器?
这取决于您的用例。基本需求是只有443个。如果您希望允许用户仍然登录http站点,然后被重定向到更安全的https版本,那么您可以再次为此使用ALB。更多关于它 d)在我的安全组上,是否需要端口80才能转到0.0.0.0/0和::0/?
对于ALB,需要,但对于EC2实例不需要。记住,Ec2从不直接与用户通信,只与ALB通信。因此,您可以更严格地控制EC2上的流量 e)是通过负载平衡器的DNS名称创建记录,还是应该是我的环境的CNAME?
使用别名记录。它们更易于管理,AWS将负责映射。更多信息。请确认,这意味着我不需要在端口443上运行目标组。对吗?谢谢你提供的细节。很抱歉我的问题e有一个拼写错误。路由53中的别名记录(即A记录)是否引用负载平衡器的DNS名称(例如awseb-awseb-1dfasa4ktz-1214590005.us-east-2.elb.amazonaws.com)或是我的环境的CNAME(例如myproject-dev.us-east-2.elasticbeanstalk.com)?应该是您的ALB。为了解释原因,系统的入口点是ALB,因此用户必须与ALB通信。这意味着您的域名应解析为您的ALB。