Apache配置HTTPS功能

1、  确认现有的apache是否安装ssl模块

是否有mod_ssl.so文件 

Find / -name mod_ssl.so 

没有的话重新编译apache 重新编译apache,加上--enable-ssl --with-ssl参数

./configure --prefix=/usr/local/httpd --enable-track-vars --enable-cgi --enable-ssl --with-ssl --with-config-file-path=/usr/local/httpd/conf --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

或者yum 安装opensslopenssl-develhttpd-devel

之后利用apxs动态编译该扩展

/usr/local/httpd/bin/apxs -c -i -a -d mod_ssl.c

 

解决办法:

Find / -name mod_ssl.c

 

Whereis opensll

 

Cd 到 /usr/local/src/httpd-2.4.25/modules/ssl目录

 

/usr/local/httpd/bin/apxs  -i -a  -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib/openssl/ -c *.c -lcrypto -lssl -ldl

注意:而且-I后面的路径,和-L后面的路径,不同机器可能不一样,分别是opensslincludelib路径,要先用whereis openssl查看好路径后,再填这个命令行,

 

安装mod_ssl.so 模块成功

 

 

2、  生成证书和密钥

Linux    /usr/local/httpd/conf/下

步骤1:生成密钥

命令:openssl genrsa 1024 > server.key

说明:这是用128rsa算法生成密钥,得到server.key文件

步骤2: 生成证书请求文件

命令:openssl req -new -key server.key > server.csr

说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步提很多问题,一一输入

步骤3: 生成证书

命令:openssl req -x509 -days 365 -key server.key -in server.csr > server.crt

说明:这是用步骤1,2的的密钥和证书请求生成证书server.crt-days参数指明证书有效期,单位为天

 

3、  配置apache

l  修改httpd-ssl.conf文件

注意在此文件中配置证书和密钥

SSLCertificateFile /apache/conf/server.crt

SSLCertificateKeyFile /apache/conf/server.key 

l  修改httpd.conf文件

步骤1:打开ssl模块

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

步骤2:引入ssl配置文件

Include “/apache/conf/httpd-ssl.conf”

4、  重新启动apache

https方式访问,查看是否生效

 

 

 

 

 

 

5、用http访问出现 

 

https出现

 

 

 

加上在http-ssl.conf配置的端口号443试一试

 

 

 

原文地址:https://www.cnblogs.com/myon/p/7792181.html