记录一个windows server 使用 Apache 开启 SSL 的方法以及一些错误的解决方法

发布于 2019-11-28  99 次阅读


今天早些时候,为了测试一个源码是否正常,我在一台已经搭建了 Apache2.4 和 PHP7.2.20 运行环境 的 windows server2019 Datacenter 服务器 测试
测试的时候发现没有开启 HTTPS 协议。于是便去查询了一下如何开启。
至于如何开启我就不细说百度上有一大堆教程,算了放一个阿里云的官方配置教程

这里只记录一些注意事项。出现的错误以及解决方法,或许对你有用

一、首先获取SSl证书

  1. openssl生成SSL证书(自行百度)
  2. 阿里云,腾讯云,百度云等等其他云服务厂商都有提供免费的SSL证书
  3. 宝塔面板(若使用的话)可直接在网站功能项里面申请

二、Apache配置SSL

发现问题

在我按照阿里云的教程配置完了过后,再重启Apache的时候我发现无法重启(我是用的ApacheMonitor管理工具,建议大家最好使用命令提示符的方式),并且显示下面这个错误

刚开始我也是百思不得其解啊,明明就是按照步骤一步一步来的为什么会错呢,最后几经排查发现是开启了 Include conf/extra/httpd-ssl.conf这个模块导致的无法启动。最后也是各种搜索,发现都没办法解决这个问题。最后看到一个大佬说用 httpd -t 就行了赛。顿时清醒

如果你也和我一样,在开启了模块后,不放看看下面 能否解决你的问题
首先我们用管理员打开命令提示符进入到Apache的安装目录下面的bin目录下面运行 httpd -t ,在这里可以看出有错误提示

既然有了错误提示后,就好办了。我们发现是 SSLPassPhraseDialog的问题

解决问题


然后我们查找解决办法,我们需要在httpd.conf配置文件中打开ssl模块,没有这个模块就需要安装依赖包:mod_ssl,安装后就会在modules里面找到,大概在188行左右找到,然后去掉前面的注释

# LoadModule ssl_module modules/mod_ssl.so

另外,也要确认以下两行至少有一行是去掉#的:

LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

去掉过后再用httpd -t检查,如果出现下面这种错误就说明你的的路径不对,更改一下在检查,应该就是没什么问题了

检查没问题后,便可以重启了。重启命令自己查一下

三、windows server 开启端口

最后如果你发现你启动后,发现无法访问请开启端口

开启端口教程:https://jingyan.baidu.com/article/925f8cb8bf55f1c0dde056fb.html


本当の声を響かせてよ