在Django中强制https

时间:2012-08-03 18:48:31

标签: django encryption ssl https

我正在尝试通过SSL加密我的整个网站。但是,我没有找到一个明确的方法来使用Django 1.4。有谁知道解决方案?

2 个答案:

答案 0 :(得分:6)

您可以使用django-secure中提供的中间件,或者您可以通过将所有HTTP请求重定向到HTTPS来在Apache / Nginx / HAProxy级别处理此问题。

答案 1 :(得分:2)

在apache + django(1.6)上,这可以通过多种方式完成,但可以在.htaccess或httpd.conf文件中完成一个简单的方法:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URL}

以下是有关它的更多信息的链接:

http://wiki.apache.org/httpd/RewriteHTTPToHTTPS

为了确保客户端不会通过普通的http连接泄露会话和csrf cookie,您应确保将它们设置为“安全cookie”,并且仅由客户端通过https发送。这可以在settings.py文件中完成:

CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True

介绍django安全性,包括SSL / HTTPS(必读):

https://docs.djangoproject.com/en/1.6/topics/security/