如何强制Google App Engine [python]使用SSL(https)?

时间:2015-03-02 12:25:48

标签: python google-app-engine https

我使用Python在Google App Engine上编写了一个Web应用程序。

用户可以通过 http :// [youraccount] .appspot.com和 https :// [youraccount] .appspot.com

访问我的网站

如何将 http 流量重定向到 https 网站。

换句话说,如何强制此网站使用 SSL(https) 来实现安全性目的(以及更好的搜索引擎优化)?

2 个答案:

答案 0 :(得分:8)

只需在secure文件中添加app.yaml参数即可。

handlers:
- url: /youraccount/.*
  script: accounts.py
  login: required
  secure: always

请参阅Configuring Secure URLs in app.yaml

  

Google App Engine支持使用HTTPS通过HTTPS进行安全连接   *.appspot.com域名。当请求使用HTTPS访问URL时   并且该URL配置为在app.yaml文件中使用HTTPS,都是   请求数据和响应数据之前由发送者加密   它们被传输,并在收件人解密后解密   接收。安全连接对于保护客户数据非常有用,   例如联系信息,密码和私人消息。

答案 1 :(得分:0)

对于在 Flexible 环境中在Google App Engine上运行的Django项目,在app.yaml中设置secure: always无效[Google Cloud docs]

相反,我在settings.py文件中添加了以下[Django docs]

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
SECURE_HSTS_SECONDS = 31536000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True

请注意,SECURE_PROXY_SSL_HEADER是必需的,因为服务器位于负载均衡器的后面。