Apache动态编译mod_ssl.so并开启虚拟主机ssl免费安全证书


.首先阿里云填写资料申请办法SSL免费证书

https://yundun.console.aliyun.com/?p=cas#/cas/home

.等待审核颁发证书,审核通过后会收到邮件,该证书是由 www.itrus.cn颁发。

.点击下载,下载到本地,然后上传到CAD服务器新建目录/usr/local/apache2/cert下。

.终端连接CAD服务器。

五:查看该服务器发现Apache没有mod_ssl模块,估计是编译安装时没有开启,后面进行动态编译。

.服务器配置操作步骤:

1.解压证书文件

[root@localhost ~]# unzip /usr/local/apache2/cert/214378517240243.zip -d  /usr/local/apache2/cert

2.查看版本并官网下载相同版本二进制文件压缩包,这里查看版本号与前运维留下的文档Apache版本2.2.17是对不上的,先下载2.4.6的看看是否能编译成功

[root@localhost ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Oct 19 2017 20:39:16

3.下载到/app/software并解压

[root@localhost ~]#  wget http://archive.apache.org/dist/httpd/httpd-2.4.6.tar.bz2 -P /app/software/
[root@localhost ~]#  tar xvf /app/software/httpd-2.4.6.tar.bz2  -C /app/software/

4.复制安装包解压出来的httpd-2.4.6/modules/ssl目录和httpd-2.4.6/modules/loggers目录到目前Apache安装目录的modules目录下面

[root@localhost ~]# cp /app/software/httpd-2.4.6/modules/ssl /app/software/httpd-2.4.6/modules/loggers /usr/local/apache2/modules/ -r

5.查看openssl安装位置,主要是查看include动态库位置

[root@localhost ~]# whereis openssl
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl usr/share/man/man1/openssl.1ssl.gz

6.进入Apache安装目录modules目录下ssl目录下,进行动态编译mod_ssl.so模块

[root@localhost ~]#  cd /usr/local/apache2/modules/
[root@localhost modules]# apxs -i -c -a -D HAVE_OPENSSL=1 -I /usr/include/openssl -lcrypto -lssl -ldl *.c

运行后能看到结果

chmod 755 /usr/local/apache2/modules/mod_ssl.so
[activating module `ssl' in /usr/local/apache2/conf/httpd.conf]

就证明成功了,但是当时是出现ERROR的,我当时没有截图,反正是提示出现了failed,于是删除掉移动到Apache家目录下modules下的ssl目录和loggers目录,官网下载前运维说的Apache2.2.17版本尝试能不能编译成功:

7.[root@localhost ~]# rm -rf /usr/local/apache2/modules/ssl&& rm -rf /usr/local/apache2/modules/loggers

8.下载2.2.17版本并且解压,复制解压出来的modulessslloggers两个目录到Apache家目录下modules目录中

[root@localhost ~]#  wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.bz2 -P /app/software/
[root@localhost ~]#  tar xvf /app/software/httpd-2.2.17.tar.bz2  -C /app/software/
[root@localhost ~]#  cp /app/software/httpd-2.2.17/modules/ssl /app/software/httpd-2.2.17/modules/loggers /usr/local/apache2/modules/ -r

9.开始编译安装mod_ssl.so模块

[root@localhost modules]# apxs -i -c -a -D HAVE_OPENSSL=1 -I /usr/include/openssl -lcrypto -lssl -ldl *.c

这次成功了,看到编译出来模块并改变权限,还自动给httpd.conf文件添加了加载mod_ssl.so的字段

chmod 755 /usr/local/apache2/modules/mod_ssl.so
[activating module `ssl' in home/server/apache2/conf/httpd.conf]
[root@localhost ~]# cat /usr/local/apache2/conf/httpd.conf|grep mod_ssl
LoadModule ssl_module         modules/mod_ssl.so

10.下面开始修改配置文件

[root@localhost ~]# cp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf_bak_20171222

修改或添加加载extra目录下的ssl-vhosts.conf文件,我这里是已经有了去掉前面#注释,如果没有就写进去整个加载字段即可

[root@localhost ~]# sed -i '/ssl-vhosts.conf/s/^#//' /usr/local/apache2/conf/httpd.conf
[root@localhost ~]# cat /usr/local/apache2/conf/httpd.conf|grep ssl-vhosts.conf
Include conf/extra/ssl-vhosts.conf

11.新建或修改/usr/local/apache2/conf/extra目录下ssl-vhosts.conf,内容如下,主要是SSL开头的字段配置。下面就是全部ssl-vhosts.conf的内容,可以直接新建个ssl-vhosts.conf文件把下面粘贴进去修改网站关键字以及秘钥目录等(如果已经有ssl-vhost.conf请先备份该文件再做修改!)

NameVirtualHost *:443
<virtualhost *:443>
DocumentRoot "/var/lib/www/"
ServerName www.test.com:443
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile cert/public.pem
SSLCertificateKeyFile cert/xxxxxxxxx.key
SSLCertificateChainFile cert/chain.pem
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d_https_error_log 86400 480"
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d_https_access_log 86400 480" combined
</virtualhost>

12.防火墙开放443端口

[root@localhost ~]# echo “iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT”>>/root/shell/firewall.sh
[root@localhost ~]# echo “iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT” >>/root/shell/firewall.sh
[root@localhost ~]# bash /root/shell/firewall.sh

13.重启Apache服务,查看443端口,打开https://www.test.com,浏览器地址栏显示绿色安全即为成功。

[root@localhost ~]# service apache restart
[root@localhost ~]# netstat -ntlp|grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      4977/httpd

本文为本站原创,转载请注明出处: Apache动态编译mod_ssl.so并开启虚拟主机ssl免费安全证书

如果有能解答我这Apache版本问题的,请联系我,至今还没弄明白。


I only do what I like, and this is ideal life.