抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Django启动https(SSL)服务

基于Python的django服务相信大家都不模式,关于使用它启动http服务并不陌生,但是将项目部署到云服务器(Linux)系统中时,要启动https服务器就要使用到

django-sslserver插件

步骤1:安装

打开你的终端,如果是虚拟环境请进入到虚拟环境再安装

1
2
$ workon 虚拟环境名称
$ pip install django-sslserver

如果不需要虚拟环境(大环境)

1
$ pip install django-sslserver

步骤2:配置

1.在项目主应用到目录下找到settings.py

找到INSTALLED_APPS添加sslserver应用

1
2
3
4
5
6
7
8
9
10
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'homeApp',
'sslserver' # 添加这一条
]

2.添加必要中间件MIDDLEWARE,也是在settings.py文件里

找到MIDDLEWARE,添加至少如下中间件

1
2
3
4
5
6
7
8
9
10
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 当服务器无法跨域请求时可以选择性关闭此中间件
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

步骤3:使用

配置好后,进入到项目目录,运行如下命令即可

1
2
# 可自定义端口号和ip
$ python manage.py runsslserver 0.0.0.0:443

当然有ssl证书到同学使用这条命令

1
$ python manage.py runsslserver --certificate <nginx的crt证书文件路径> --key <nginx的key文件路径> 0.0.0.0:443

(为什么是443,因为https端口默认就是443,为什么是0.0.0.0,通过此ip启动服务其他人才可以通过服务器公务ip访问到项目)

注意:

如果不添加ssl启动https服务的同学访问时有如下情况

image-20220611165625403

请申请ssl证书后,按照添加ssl证书的启动方式启动项目

小羊的课设作业-CitySearch

小羊的课设作业-CitySearch

评论