在django站点上强制使用ssl。

django-sslif的Python项目详细描述


你想在你的django网站上强制使用https吗?你来对地方了

django-sslify Releasedjango-sslify Downloadsdjango-sslify BuildGuardian Sketch

目的

在django站点上启用ssl应该很容易,就像在一行代码中一样 容易这就是我写django-sslify的原因!

这个项目的目标是让人们可以很容易地在 他们的django站点、api、web应用程序或您正在构建的任何内容的页面。固定 你的网站应该不难。

安装

要安装django-sslify,只需运行:

$ pip install django-sslify

这将自动安装库的最新版本。

如果使用Heroku,则应添加 django-sslify>=0.2到您的requirements.txt文件:

$echo'django-sslify>=0.2.0' >> requirements.txt

一旦你这样做了,下次你把你的代码推到Heroku这个库 将自动为您安装。

用法

要使用这个库并在django站点上强制使用ssl,您需要做的就是 正在修改您的settings.py文件,并准备 sslify.middleware.SSLifyMiddleware到您的MIDDLEWARE_CLASSES设置:

# settings.pyMIDDLEWARE_CLASSES=('sslify.middleware.SSLifyMiddleware',# ...)

注意

确保sslify.middleware.SSLifyMiddleware是第一个中间件 类,因为这将确保如果用户发出不安全的请求 (通过http),它们将在任何实际的 正在处理。

如果您使用的是Heroku,则还应将以下设置添加到 django设置文件:

SECURE_PROXY_SSL_HEADER=('HTTP_X_FORWARDED_PROTO','https')

这将确保django能够正确地检测安全连接。

使用自定义ssl端口

如果您的站点在非标准SSL端口上运行,则可以更改 django-sslify通过设置特殊变量的默认重定向行为 在settings.py文件中:

SSLIFY_PORT=999

禁用SSLify

如果要在某些环境中禁用sslify(用于本地开发, 或者运行单元测试,最好的方法是修改设置文件 并添加以下内容:

SSLIFY_DISABLE=True

您还可以仅对某些请求禁用sslify(对于公开 仅限http的web hook url等 SSLIFY_DISABLE_FOR_REQUEST列表的参数。从返回True 您的可调用将禁用SSL重定向

SSLIFY_DISABLE_FOR_REQUEST=[lambdarequest:request.get_full_path().startswith('/no_ssl_please')]

注释

此代码最初取自 this StackOverflow thread

多年来,此代码已被采用,用于Heroku和非Heroku。 平台。

如果您正在使用heroku,并且不知道如何设置ssl,请阅读 this great article 其中谈到使用新的ssl端点插件(,这完全是岩石!

NGINX+无限重定向

如果您在nginx负载均衡器后面运行django应用程序,并且看到 无限重定向,解决方案是添加以下行:

proxy_set_header X-Forwarded-Proto $scheme;

到您的nginx.conf文件,在相关的location块内。这个 Stack Overflow thread 也可能有用。

贡献

这个项目是唯一可能的,因为惊人的贡献者谁的工作

如果你想改进这个库,请给我一个请求我很高兴 查看和合并拉取请求。

标准贡献工作流应该如下所示:

  • 在github上派生此项目。
  • 在主分支中进行一些更改(此项目很简单,因此不需要 使事情复杂化。
  • 准备好后发送拉取请求。

另外,如果您正在进行更改,请为您的更改编写测试–此 project有一个完整的测试套件,您可以轻松地修改/测试。

要运行测试套件,可以使用以下命令:

$cd django-sslify
$ python setup.py develop
$ python manage.py test sslify

更改日志

所有库更改,按降序排列。

版本0.2.5

2014年12月28日发布。

  • 添加新的SSLIFY_DISABLE_FOR_REQUEST设置,允许用户 指定可以选择拒绝ssl的函数-这对于 在某些情况下,您可能希望在整个站点范围内强制使用ssl 环境(webhooks不支持ssl,例如)。

版本0.2.4

2014年11月23日发布。

  • 添加指定自定义SSL端口的功能。
  • 完全改造了文档。
  • 更改项目徽标/吉祥物^^
  • 添加自定义SSL端口的新测试

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
即使值等于null,java也会检索行   java如何正确地创建子类的新实例   java集合。shuffle未按预期工作   elasticsearch使用JAVA API从Elastic Search建议搜索响应中提取源数据   mysql HTTP状态500 java。lang.NullPointerException   具有多个前端服务实例和后端工作者的java ZMQ请求/响应   通过短信、电子邮件、twitter、黑莓上的facebook分享java   java根据netbeans中的单选按钮切换组件的“enable”属性   java托管Bean不工作:调用NotingMB文件中的save函数时出现空指针异常   如何在java中对包含两个以上异构对象的列表进行排序?   java我在尝试log4j时遇到以下错误。   java可以在MacOSX上实现这一点吗?   我尝试在java中使用定界符输入制作caesar密码   长时间运行Tomcat进程的类加载器中的java问题   java swing焦点问题,焦点丢失,未调用focusgain   java如何以字符串格式“EEE,MMM d,yyyy”获取整数月、日和年   java JList侦听器找不到符号