最近開發的一個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。