Django应用配置https访问,将访问django的http请求转成https请求

在前后端分离开发过程中,前端项目vue打包部署到服务器上,通过宝塔面板来申请、部署SSL证书,前端打开是安全的,可是我的api host设置的访问http://x.x.x.x,结果报错了,提示在已部署https的情况下,访问的server地址必须是ssl协议的,也就是需要通过https://x.x.x.x这样请求接口。

前端申请证书还是方便的,后端的话之前从来没有弄过,百度了很多教程,发现django也可以通过ssl协议来启动,所以将这一过程记录下来,希望对有需要的朋友有所帮助。

操作方法:

安装ssl库

pip install django-sslserver

配置settings

# settings.py 添加:
SECURE_SSL_REDIRECT = False
INSTALLED_APPS = (
    "sslserver",
)

通过ssl启动

python manage.py runsslserver

把certificate地址,key地址,copy下来,进行接下来的请求

指定证书启动django应用

python manage.py runsslserver --certificate /path/to/certificate.crt --key /path/to/key.key

说明
当SECURE_SSL_REDIRECT = False时,http请求无响应,https请求能正确访问。 当SECURE_SSL_REDIRECT = True时,http请求会重定向https,此时django支持https,可正确访问。
 

posted @ 2020-01-02 11:01  jee-cai  阅读(429)  评论(0编辑  收藏  举报