介绍
Cloudflare 现在免费提供 SSL,如果我不在我的网站上利用这一点,我将是一个傻瓜,而一个彻头彻尾的白痴会在尝试的过程中破坏一切。
我可以很好地编写应用程序,但是在设置或配置 https/nginx/gunicorn/etc/idon'tknowtheterminology 时,我知道的内容几乎不足以按照 Google 搜索的说明进行操作。
问题
我想使用 django-sslify 在我的 Django Web 应用程序上强制使用 https。鉴于以下已知事实,我如何在不破坏生活平衡的情况下实现这一目标?
已知事实
- 我正在使用 Django 1.7,在连接到(免费)Cloudflare DNS 的 DigitalOcean 服务器上运行。Django 配备(服务?) nginx 和 gunicorn。基本上按照本指南进行设置。
- 访问我的网站当前默认使用常规的http://example.com标头。
- 手动访问https://example.com可以使用绿色锁,但这会破坏所有表单提交,并出现错误“(403) CSRF 验证失败。请求中止。”。
- 在我的 Cloudflare 站点设置中,域当前配置为“灵活 SSL”。
- 尝试在我现有的设置中使用 django-sslify 完全破坏了一切,并且浏览器无法返回响应。
- 此信息块告诉我,在将 django-sslify 与 Cloudflare 的 SSL 结合使用时,我应该使用“完整 SSL”配置设置。
- 犹豫的原因在这里找到,其中提到需要 20 美元/月的 Pro Cloudflare 帐户来处理 SSL 终止。所以我真的不想搞砸这个:/
- 在我的 nginx 和 gunicorn 配置中,特别是在我的 nginx 配置中,只有 1 处提到了“http”或“https”:
location / {
proxy_pass http://127.0.0.1:8001; ... }
好吧,我想这就是我所拥有的
另外,我的服务器正在为 Phonegap 应用程序提供 Django Rest Framework api,是否需要考虑到这一点?如果我需要提供其他信息,请告诉我,我会尽快回复您。谢谢你看看这个!:)