Apache24配置https
这里写自定义目录标题
前言
最近想把完美韵脚搞个小程序版,微信小程序需要https形式的访问,简单的了解后进行了对项目进行项目进行了https配置,期间也遇到几个坑,这里记录下。
我的项目配置:Apache24+Django1.9.2+Python3.5
申请https证书
https证书有免费版、收费版,也可以自己用工具生成,我出卖了个人信息,注册了腾讯云,拿到了一个免费使用一年的https证书。
腾讯云证书下载地址:https://cloud.tencent.com/document/product/400/6814
申请证书我选择了 文件验证 ,但是腾讯云文档上说的文件验证我操作没法访问,这里我通过Django设置views的urls来访问验证文件来解决的,添加的url如下。
url(r'^.well-known/pki-validation/fileauth.txt$', TemplateView.as_view(template_name=".well-known/pki-validation/fileauth.txt", content_type="text/plain"), name="test"),
验证后下载证书,下载证书如下:

配置https
放证书文件
我将证书文件放置到Apache24安装目录。
1. 配置httpd.conf
打开Apache24/conf/httpd.conf,进行配置修改,建议修改前先备份。
1.1 将配置文件中下面两行取消注释,开启ssl。
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
1.2 将配置文件中下面一行取消注释,注意 httpd-ahssl.conf 不要取消注释
Include conf/extra/httpd-ssl.conf
# Include conf/extra/httpd-ahssl.conf
2. 配置httpd-ssl.conf
打开Apache24/conf/extra/httpd-ssl.conf,进行配置修改,同样建议修改前先备份。
2.1 监听443端口
Listen 443
443端口是https的默认端口,这里确认它是443就好。
2.2 配置ServerName
将 ServerName及ServerAdmin由
ServerName www.example.com:443
ServerAdmin admin@example.com
改成自己的域名:
ServerName www.wanmeiyunjiao.com:443
ServerAdmin admin@www.wanmeiyunjiao.com
2.3 配置证书文件
SSLCertificateFile "${SRVROOT}/cert/2_www.wanmeiyunjiao.com.crt"
SSLCertificateKeyFile "${SRVROOT}/cert/3_www.wanmeiyunjiao.com.key"
SSLCertificateChainFile "${SRVROOT}/cert/1_root_bundle.crt"
我这边的
S
R
V
R
O
O
T
在
h
t
t
p
d
.
c
o
n
f
定
义
为
A
p
a
c
h
e
24
的
路
径
:
C
:
/
A
p
a
c
h
e
24
‘
D
e
f
i
n
e
S
R
V
R
O
O
T
"
C
:
/
A
p
a
c
h
e
24
"
‘
‘
S
e
r
v
e
r
R
o
o
t
"
{SRVROOT}在httpd.conf定义为Apache24的路径:C:/Apache24 `Define SRVROOT "C:/Apache24"` `ServerRoot "
SRVROOT在httpd.conf定义为Apache24的路径:C:/Apache24‘DefineSRVROOT"C:/Apache24"‘‘ServerRoot"{SRVROOT}"`
2.4 最终简略配置
<VirtualHost _default_:443>
DocumentRoot "${SRVROOT}/htdocs"
ServerName www.wanmeiyunjiao.com:443
ServerAdmin admin@www.wanmeiyunjiao.com
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "${SRVROOT}/cert/2_www.wanmeiyunjiao.com.crt"
SSLCertificateKeyFile "${SRVROOT}/cert/3_www.wanmeiyunjiao.com.key"
SSLCertificateChainFile "${SRVROOT}/cert/1_root_bundle.crt"
</VirtualHost>
重启Apache
重启Apache,在网页中访问https的网址吧:https://wanmeiyunjiao.com/
访问结果:

坑&其他
配置时需要将阿里云 443 端口开启,如果服务器是阿里云的话,可以Telnet服务器443端口看下。
在服务器内部可以通过 https://localhost 进行尝试访问。
遇到过 assert assert sys.modules[modname] is not old_mod 报错,我直接将报错文件的这两行直接注释掉了。
参考博客
Apache2.4 HTTPS SSL证书配置
apache配置https
【SSL】配置好SSL仍然无法通过阿里云服务器访问https443端口的问题
关于 HTTPS 一篇文章就够了
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)