天天看点

django HTTPS访问

最近开发的一个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导入

django HTTPS访问

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。

django HTTPS访问

继续阅读