【发布时间】:2018-12-04 07:51:25
【问题描述】:
我有一个在 EC2 实例上运行的烧瓶应用程序,它位于终止 SSL 的 AWS ELB 后面。然后 ELB 将连接转发到端口 80 上的实例。
我正在尝试强制烧瓶将所有 http 请求重定向到 https。我已经尝试过 SSLify 和以下内容,问题是当我使用以下内容时,我收到许多重定向错误。我相信这是因为 ELB 正在转发到 80 上的实例,然后重定向将其发送回 ELB,从而创建一个无限循环。 SSLify 似乎不起作用,因为实例不是 SSL 终止点。
看来我需要实现 request.is_secure 才能完成这项工作并尊重 X-Forwarded-Protocol,但我不确定如何。
@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)
【问题讨论】:
标签: amazon-web-services ssl flask