最近开发的一个django项目要求必须通过安全检测,必须采用https访问,因此,进行https相关的学习
1. ssl证书获取
由于商业证书要付费获取,这里采用openssl进行自签证书的获取。
在linux上安装openssl
采用openssl获取证书,证书默认生成位置:
/root
openssl
# 首先生成虚构的CA认证机构
genrsa -des3 -out ca.key 1024
rsa -in ca.key -out ca.key
req -new -x509 -key ca.key -out ca.crt -days 365
# 接着使用虚拟的CA认真机构生成证书
genrsa -des3 -out server.key 1024
req -new -key server.key -out server.csr
x509 -req -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt -days 365
2. 将证书添加到chrome浏览器
【设置】-【隐私设置和安全性】-【安全】-【管理证书】,将server.crt导入
3. 开启django HTTPS服务
把server.crt、server.key证书复制到manage.py同级目录下
在settings.py中配置
SECURE_SSL_REDIRECT = True
INSTALLED_APPS = [
...,
'werkzeug_debugger_runserver',
'django_extensions',
]
安装相关依赖
pip3 install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple
pip3 install django-extensions -i https://mirrors.aliyun.com/pypi/simple
pip3 install django-werkzeug-debugger-runserver -i https://mirrors.aliyun.com/pypi/simple
pip3 install pyOpenSSL -i https://mirrors.aliyun.com/pypi/simple
启动django
python3 manage.py runserver_plus --cert server.crt 0.0.0.0:8001
然而,在浏览器打开网页的时候,报错静态文件找不到,404。