我使用Python在Google App Engine上编写了一个Web应用程序。
用户可以访问我的网站http:// [youraccount] .appspot.com和https:// [youraccount] .appspot.com
如何将http流量重定向到https站点。
换句话说,我如何强制此网站使用SSL(https)
用于安全目的(以及更好的SEO)?
只需将secure
参数添加到app.yaml
文件即可。
handlers:
- url: /youraccount/.*
script: accounts.py
login: required
secure: always
见Configuring Secure URLs in app.yaml
Google App Engine支持使用
*.appspot.com
域通过HTTPS为URL进行安全连接。当请求使用HTTPS访问URL,并且该URL配置为在app.yaml文件中使用HTTPS时,请求数据和响应数据在发送之前由发送方加密,并在收件人解密之后解密接收。安全连接对于保护客户数据非常有用,例如联系信息,密码和私人消息。
对于在灵活环境中在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
,因为服务器位于负载均衡器后面。