如何在Django中实现Https(SSL中间件)

时间:2011-09-27 08:21:38

标签: django ssl django-middleware

我是Django和web开发的新手。我想实施    Exactly this Question,但是在django。我搜索过许多博客和问题,我无处可寻找,究竟如何实现这一点。 SSL Middleware Django,是我无法掌握的东西。如果这是解决方案,有人可以告诉我如何实施它吗?

问题清楚了吗?或者我需要添加一些东西,请评论我将做出必要的更改。任何帮助将非常感谢。谢谢提前。

P.S:我在服务器上添加了ssl证书。这样就可以了。

2 个答案:

答案 0 :(得分:1)

您只需将中间件类添加到settings.py中的中间件列表中,然后按照代码段中的说明按照说明进行操作。 Here's the documentation guide to middleware

希望能帮到你。

答案 1 :(得分:1)

这是一个示例中间件,如果使用HTTP,它会重定向到SSL站点:

from django.http import HttpRequest
from django.shortcuts import redirect

  #Require SSL com only. If we get anything else, redirect to https /
class RequireSSL(object):
  def process_request(self, request):
    assert isinstance( request, HttpRequest )
    if not request.is_secure():
      return redirect( 'https://%s/' % request.get_host() )

然后在你的settings.py中:

MIDDLEWARE_CLASSES = [
    'website.middleware.require_ssl.RequireSSL',
    ...
]