Python 通过HTTPS为Flask服务器提供服务

Python 通过HTTPS为Flask服务器提供服务,python,amazon-web-services,api,flask,https,Python,Amazon Web Services,Api,Flask,Https,我正在学习AWS,目前正在尝试通过HTTPS部署FlaskAPI。我设置了一个运行Apache的EC2实例。我已经使用ELB在站点上设置了SSL,并尝试通过HTTPS部署flask,如下所示: if __name__ == '__main__': context = ("server.crt", "server.key") app.run(host="0.0.0.0",port=5000,debug=True,ssl_c

我正在学习AWS,目前正在尝试通过HTTPS部署FlaskAPI。我设置了一个运行Apache的EC2实例。我已经使用ELB在站点上设置了SSL,并尝试通过HTTPS部署flask,如下所示:

if __name__ == '__main__':
    context = ("server.crt", "server.key")
    app.run(host="0.0.0.0",port=5000,debug=True,ssl_context=context)
然而,我认为该站点甚至没有正确启动Flask服务器,因为即使所有内容都加载了,并且我收到一条Flask正在运行的消息,通过浏览器发送一个简单的GET请求也不起作用,因为该请求从未加载,最终会超时。它的行为几乎就像端口5000上没有运行服务器一样

另一方面,当我通过http而不是https运行这个程序时,它工作得非常好。有人能帮我做些什么吗?谢谢。

根据评论

该问题的解决方案是终止ELB上的HTTPS连接。通过这种方式,ELB和EC2实例之间的通信可以使用HTTP进行,HTTP简单且易于在实例上进行管理。

基于注释


该问题的解决方案是终止ELB上的HTTPS连接。通过这种方式,ELB和EC2实例之间的通信可以使用HTTP进行,HTTP简单且易于在实例上管理。

如果您在ELB上设置了HTTPs,则通常不需要在EC2实例上使用HTTPs。连接如下所示:
client--https-->ELB--http-->EC2
。那么我如何向端点发出请求呢?只是https://:5000>是吗。您将使用https://。ELB将终止HTTPS并使用HTTP将请求转发到您的实例。如果它不起作用,就必须查看ALB、侦听器和目标组的所有设置。这很有效。非常感谢你!很高兴听到这个消息。如果你不介意的话,我会给出一个答案供将来参考。如果你的ELB上设置了HTTPs,那么你通常不需要ec2实例上的HTTPs。连接如下所示:
client--https-->ELB--http-->EC2
。那么我如何向端点发出请求呢?只是https://:5000>是吗。您将使用https://。ELB将终止HTTPS并使用HTTP将请求转发到您的实例。如果它不起作用,就必须查看ALB、侦听器和目标组的所有设置。这很有效。非常感谢你!很高兴听到这个消息。如果你不介意的话,我会给你一个答案,以备将来参考。