在前後端分離開發過程中,前端項目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,可正確訪問。