简介
最近做基于CAS的SSO(单点登录) ,由于在CAS Server上配置的是https的服务地址,所以需要住django的运行使用https.
搜索了网上资料,很多重复的复制、粘贴版本,结合搜索到的文章,整理了一下。
步骤
1. 在django中安装以下组件,如果使用pycharm开发,可以把名字直接放在requirements.txt文件中,pycharm会自动提示安装。
pip install django-extensions
pip install django-werkzeug-debugger-runserver
pip install pyOpenSSL
2. 配置django的settings文件,在INSTALLED_APP中加入以下两个组件,并开启强制http转https设置
INSTALLED_APPS = [
'werkzeug_debugger_runserver',
'django_extensions',
.....
]
....
SECURE_SSL_REDIRECT = True
3. 生产https所需要的证书(步骤复制于网上),生成的文件包含server.crt,server.key,server_nopwd.key .在运行https服务的时候,如果使用server.key启动的时候会需要输入密码,所以我们使用server_nopwd.key这个文件
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key -out server_nopwd.key
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
4. 运行http服务器
python manage.py runserver_plus --cert-file server.crt --key-file server_nopwd.key 0.0.0.0:443
(venv) C:\Users\django-cas-ng-example>python manage.py runserver_plus --cert-file --server.crt --key-file server_nopwd.key 0.0.0.0:443
* Restarting with stat
Performing system checks...
System check identified no issues (0 silenced).
Django version 3.0.3, using settings 'mysite.settings'
Development server is running at https://0.0.0.0:443/
Using the Werkzeug debugger (http://werkzeug.pocoo.org/)
Quit the server with CTRL-BREAK.
* Debugger is active!
* Debugger PIN: 185-949-477
* Running on https://0.0.0.0:443/ (Press CTRL+C to quit)
5.验证,由于证书是自己生成的所以会提示不安全
6.如果使用Pycharm的运行按钮,可以参考如下的配置。