apache 部署ssl 证书时发现缺少 ssl 模块的解决方案?
一.现象:
Apache部署SSL证书时发现主配置文件中没有
LoadModule ssl_module 与 modules/mod_ssl.so两行内容以及modules目录下没有mod_ssl.so文件
二.原因:
当初部署网站Apache编译安装时没有编译 --enable-ssl 模块
三.解决方案:
方法一:动态编译 --enable-ssl 模块
1.下载对应版本的源码包上传到服务器
2. 解压此源码包
[[email protected] ~]# tar -xf httpd-2.4.41.tar.gz
3. 切换目录
[[email protected] ~]# cd httpd-2.4.41/modules/ssl/
4. 查询openssl的位置
[[email protected] ~]# whereis openssl
[[email protected] ~]# openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
5. 查询是否安装openssl-devel
[[email protected] ~]# rpm -qa openssl-devel
注:如果没有安装,请执行:yum -y install openssl-devel 此命令安装
6. 动态编译
[[email protected] ~]# /usr/local/apache/bin/apxs -a -i -c -L/usr/lib64/openssl/engines/lib -c *.c -lcrypto -lssl -ldl
注:1./usr/local/apache/bin/apxs 此命令为Apache源码编译安装目录下的
2.一般情况下是不会报错的(根据版本不同而决定)
3.如果报错:报错信息一般为:
解决方法:vim编辑 ssl_engine_init.c文件,删除#include "mod_md.h"此行内容,重新执行以上命令方可解决
4. 看到以下两行内容表示动态编译SSL模块成功:
7. 再次进行确认
查看主配置文件中是否有LoadModule ssl_module modules/mod_ssl.so此行内容
查看modules目录下是否有mod_ssl.so文件
注:此过程会自动备份主配置文件
方法二:重新编译安装Apache附带--enable-ssl模块即可