如何强制所有请求在appengine中的自定义域上使用https?

时间:2013-04-18 01:12:42

标签: google-app-engine ssl python-2.7 https

我已经设置了证书。 http://www.example.comhttps://www.example.com都有效。

但是,我想将http://www.example.com的所有流量路由到https://www.example.com

怎样才能用appengine做到这一点?我正在使用Python。

3 个答案:

答案 0 :(得分:4)

将此添加到您的app.yaml:

handlers:

- url: YOUR_URL
  script: YOUR_SCRIPT
  secure: always

答案 1 :(得分:2)

这是一篇较老的帖子,但在尝试使用最新的GAE Flex环境自己弄清楚如何做到这一点时,我一直遇到它。我们正在使用Django,我们必须使用的标头/密钥来强制使用SSL:

SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

SECURE_HSTS_SECONDS = 31536000  # - One Year
SECURE_HSTS_INCLUDE_SUBDOMAINS = True

SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True

希望有所帮助。

答案 2 :(得分:0)

摘自Google document

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

始终 - 与不使用HTTPS的此处理程序匹配的URL的请求会自动重定向到具有相同路径的HTTPS URL。为重定向保留查询参数。