首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在AWS ELB to Flask应用程序上终止SSL?

如何在AWS ELB to Flask应用程序上终止SSL?
EN

Stack Overflow用户
提问于 2018-06-26 01:02:24
回答 2查看 215关注 0票数 1

我有一个在EC2实例上运行的flask应用程序,它位于一个终止SSL的AWS ELB后面。然后,ELB将连接转发到端口80上的实例。

我正在尝试强制flask将所有http请求重定向到https。我已经尝试了SSLify和下面的代码,问题是当我使用下面的代码时,我收到了很多重定向错误。我相信这是因为ELB正在转发到80上的实例,然后重定向将其发送回ELB,从而创建无限循环。SSLify似乎不起作用,因为实例不是SSL终结点。

看起来我需要实现request.is_secure才能使其工作,并尊重X转发协议,但我不确定如何实现。

代码语言:javascript
代码运行次数:0
运行
复制
@app.before_request
def before_request():
    if request.url.startswith('http://'):
        url = request.url.replace('http://', 'https://', 1)
        code = 301
        return redirect(url, code=code)
EN

回答 2

Stack Overflow用户

发布于 2018-06-26 01:54:34

实现proxyfix已解决此问题。

代码语言:javascript
代码运行次数:0
运行
复制
from werkzeug.contrib.fixers import ProxyFix

sslify = SSLify(app, subdomains=True, permanent=True)
app.wsgi_app = ProxyFix(app.wsgi_app)
票数 2
EN

Stack Overflow用户

发布于 2022-01-05 10:01:04

理想情况下,您应该在负载均衡器上执行HTTPS重定向,而不是在->内部执行。

请参阅:Redirecting EC2 Elastic Load Balancer from HTTP to HTTPS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51028525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档