运行Python Flask应用程序的Elastic Beanstalk(AWS)的HTTPS。无法获取要解析的网址

时间:2019-09-25 06:43:28

标签: python ssl flask https amazon-elastic-beanstalk

我使用Flask框架创建了一个小型Python站点。我已使用Elastic Beanstalk将其上传到AWS,并尝试配置环境以确保启用HTTPS。我以前使用ASP.NET和IIS完成了此操作,但没有使用Python / Apache。 (我对这个“堆栈”非常陌生)。如果我访问基础的Elastic beantalk URL,则可以正常访问网站(自己尝试)

http://flask-priceline.f8n9uir55a.ap-southeast-2.elasticbeanstalk.com

但是,当我尝试使用HTTPS或HTTP访问正确的DNS时,例如

http://plmonitoring.in-daws.api.net.au/https://plmonitoring.in-daws.api.net.au/

我得到:

无法访问此站点plmonitoring.in-daws.api.net.au的服务器IP地址找不到。 尝试运行Windows网络诊断程序。 DNS_PROBE_FINISHED_NXDOMAIN

这就是我所做的。我已经在AWS中创建了有效证书。我还在Route 53中设置了适当的记录集/ CNAMES,以便我的别名指向我创建的负载均衡器。

我已经用经典的负载平衡器创建了Elastic Beanstalk环境。负载均衡器位于公共子网中,运行Web服务器的EC2实例位于私有子网中。 (此VPC是预先存在的,并且配置正确)。我已经在负载均衡器上创建了以下侦听器:

enter image description here

我已经通过以下.ebextensions配置文件完成了此操作:

private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) 
getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && 
cm.getActiveNetworkInfo().isConnected();

我在安全组中也进行了以下设置(我尝试将HTTP 80作为入站添加到Load Balancer,将其作为出站添加到EC2 /作为EC2的入站,并且不作任何更改)。这是负载均衡器安全组的入站:

enter image description here

负载均衡器输出:

enter image description here

EC2输入:

enter image description here

EC2输出:

enter image description here

我还将这个示例添加到.ebextensions文件夹中,希望它可以将HTTP重定向到HTTPS,以防用户输入HTTP而不是HTTPS-https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/security-configuration/https-redirect/python/https-redirect-python.config

1 个答案:

答案 0 :(得分:0)

最严重的人为错误。将记录设置为IPV4,而不是CNAME!。问题解决了。