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,可正确访问。
一键三连呀!