Apache 更换SSL证书不匹配异常

环境

Windows 2008 + BT [apche + php cgi]

操作

在BT的界面上传了新申请的SSL证书,然后重启Apache,但一直提示无法启动

在系统日志里面显示如下错误

操作系统日志-Apache服务启动异常

在apache自己的日志里面报错如下

apache 自己的启动日志报错信息

一开始还以为是配置文件出错,使用 httpd -t 检查配置文件语法,显示OK

然后搜索了下【AH00016: Configuration Failed】得到了篇文章

https://www.randomhacks.co.uk/apache-2-4-failed-to-start-ah00016-configuration-failed/
解决方案

其中一个网址:http://httpd.apache.org/docs/2.4/en/ssl/ssl_faq.html#verify

可以用来验证SSL私钥与其证书匹配

主要命令如下:

# x509 对应 crt 文件
$ openssl x509 -noout -modulus -in server.crt | openssl md5
# rsa 对应 key 文件
$ openssl rsa -noout -modulus -in server.key | openssl md5
# 通过以上两个命令得出的Md5值一样,则表示证书匹配
# 还有一个XXX_chain.crt文件,没有用

更多SSL配置,参考官方文档

以上配置完之后,在微信【小程序】上的请求一直报错:

换证书之后的异常,还有一个报错:握手失败

分析:

之前的证书是在宝塔的后台配置的,没有在配置文件中添加[SSLCertificateChainFile]配置项,可能是其自动设置了---未找到具体原因

换证书时,我们是手动上传,然后修改apache的配置文件,但也没有配置[SSLCertificateChainFile],导致【小程序】握手失败

但是,在浏览器中访问却是正常,无法解释!!

解决:

在 virtualhost 443 的虚拟主机段中,添加[
SSLCertificateChainFile] ,然后重启 apache