天天看點

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通路

繼續閱讀