2

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

4

2 回答 2

6

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

于 2012-08-03T18:54:11.790 回答
3

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

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

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

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

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

CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True

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

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

于 2013-11-19T12:15:43.527 回答