环境是64位windows,python3.7(64位),apache24(64位),
SSL是证书文件啦,有免费的也可以付费的,例如我使用的是阿里云的免费证书:
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.596cc2vFc2vFEZ&commodityCode=cas#/buy
然后该买域名买域名去:
https://wanwang.aliyun.com/domain?spm=5176.8076989.1407540.5.546b18387vFkwP
我是申请了SSL才发现要绑定域名啥的,这和需要和证书匹配,总之假设它叫www.yuming.com吧,然后你下载下来的适配apache的SSL证书文件应该是这货:
与此同时你的apache应该已经准备好了吧,没有的话请去下载:apache:https://www.apachelounge.com/download/
然后你问我apache怎么配置啥的其实我不太懂啦,我用的笨方法:直接解压后从CMD控制台 转到\Apache24\bin跑httpd.exe,有啥报错百度啥报错就行了;运行没问题就是跑起来了,打开网址自己试下,访问不到可能是端口没开。(百度一下怎么配就好了,没有很难)
然后你问我怎么把django框架的项目放进apache去,嗯……说来话长……建议自己百度下,长话短说:
下载mod_wsgi模块:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 这个是要解压后出一个“mod_wsgi.cpXX-win_amd64.pyd”放到Apache的 Apache24\modules模块文件夹下去的,之后在Apache24\conf\httpd.conf 这个文件里启用它,你就有了加载wsgi模块的apache。
Listen 0000#监听端口自己改啦
ServerName www.yuming.com#服务器名称啦
LoadModule wsgi_module modules/mod_wsgi.cpXX-win_amd64.pyd #也有的文件把拓展名改.so放在这里的
…………………………
WSGIScriptAlias / D:/my_py/django_https/mydjango/mydjango/wsgi.py
<Directory D:/my_py/django_https/mydjango/mydjango>
#require all denied
Require all granted
</Directory>
然后去改你的djando配置文件:mydjango\mydjango\wsgi.py
import os,sys
from django.core.wsgi import get_wsgi_application
work_path = "D:\my_py\django_https\mydjango\mydjango"#我wsgi的绝对路径
if work_path not in sys.path:
sys.path.append(work_path)
if project not in sys.path:
sys.path.append(project)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjango.settings")#项目名.settings哦别忘了改
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
再去改你的mydjango\mydjango\settings.py文件:
ALLOWED_HOSTS = ['*']#这里变成“*”才能被别的计算机访问到呢
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'werkzeug_debugger_runserver',#抄的不知道干啥用
'django_extensions',#抄的不知道干啥用
]
以上的配置基本可以跑http的django项目了,但不是https,因为听说https=http+ssl嘛,看到后面再弄
配置djando的时候建议看下IP地址,(使用正确的ip地址的话,即使是编译器跑,也可以被外网访问呢——部署在有公网ip服务器的情况下),这个时候你应该就有了能独立跑的gjango框架,缺啥库用啥包什么的报错会告诉你的,当然百度也会(直接搜报错信息)
hostname = socket.gethostname()
print(socket.gethostname())#主机名
print(socket.gethostbyname(hostname))#IP地址
#############################################
现在你有了有效的证书文件、可以独立跑的djando项目、还有加载了wsgi模块的apache,下面给apache加上SSL。你就有了https
官方给的配置说明我照着做没做出来:但也是很有用的
https://help.aliyun.com/document_detail/98727.html?spm=5176.2020520163.0.0.596cc2vFc2vFEZ
参照后面做出来的,大概就是在“Apache24\conf\extra”里新建个配置文件我起名httpd-ssl2.conf,写好监听端口和你的django项目路径:然后被\Apache24\conf\httpd.conf引用一下,httpd.conf里面哪些模块该启用官方文档告诉你了
……
LoadModule rewrite_module modules/mod_rewrite.so
……
LoadModule ssl_module modules/mod_ssl.so
……
Include conf/extra/httpd-ssl.conf#这个说到了,就是它卡了我两天,最后换了个httpd-ssl2就好了
……
自己去看下嘛:https://blog.csdn.net/A1344714150/article/details/89521019
我的http-ssl2.conf代码也差不多:
Listen 0001#你的https端口监听地址
<VirtualHost *:0001>
SSLEngine on#抄官方的
SSLProtocol all -SSLv2 -SSLv3#抄官方的
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM#抄官方的
SSLCertificateFile "${SRVROOT}/conf/0000000_yuming.com_public.crt"#我写的相对地址啊写
SSLCertificateKeyFile "${SRVROOT}/conf/0000000_yuming.com.online.key"#你要是不放心就写绝对地址
SSLCertificateChainFile "${SRVROOT}/conf/0000000_yuming.com.online_chain.crt"#证书就这仨文件
DocumentRoot "${SRVROOT}/htdocs"
WSGIScriptAlias / D:/my_py/django_https/mydjango/mydjango/wsgi.py#wsgi文件的路径
<Directory D:/my_py/django_https/mydjango/mydjango>#django项目文件的路径
Require all granted
</Directory>
</VirtualHost>
这个时候再跑apache,访问域名+新的端口号,就是https了。
你要是配出来了记得点个赞,好让我知道我帮助了别人。