1、我选择的Centos 7
2、安装Httpd, 这里我就不说了,我有一篇httpd搭建文件服务器的博客里面讲到了httpd的安装 Httpd安装
3、 Centos 7 安装Httpd默认路径是 /etc/httpd: 如下图:
- 看到我用红色框框框出来的modules 文件夹(httpd支持的模块儿)!如下图:
- 看看有没有mod_ssl.so 模块,就是我用红色框框框出来的文件,如果没有进行安装!
- mod_ssl.so 安装方法: yum install -y mod_ssl
- 安装之后会发现/etc/httpd/conf.d/ssl.conf, 这是httpd安装mod_ssl.so之后默认生成的配置文件,我自己配置,所以我选择删掉,你们自己可以自行修改!(你也可以删掉跟着我下面的配置走 ! )
- 我是直接cd /etc/httpd/conf.d/ 然后 rm -rf ssl.conf
4、准备工作基本上有了,开始配置我们的ssl.conf文件
# 配置之前我先建个文件夹,放转发配置的文件夹,文件夹建在哪儿呢?
cd /etc/httpd/conf/
mkdir extra
# 文件夹创建好了,创建配置文件,创建两个。为什么创建两个?
# 一个是ssl.conf https的配置; 一个是http转的配置
vi httpd-ssl.conf
# :wq 保存退出
vi httpd-vhosts.conf
# :wq 保存退出
# 很显然第一个是ssl(https) 的配置文件。
# 到这里如果http转发都不会的朋友,可以去看一下我的另外几篇博客,打开主页找到linux分类, 里面有
# httpd 安装,文件服务器搭建, httpd转发, httpd 重定向https, 在这里讲的是httpd转发到https
# 我的分类地址: https://blog.csdn.net/qq_40058321/article/category/8783090
# 不才,可做参考,谢谢
# 除了文件创建好了之后我们还需要一个很重要的东西, 证书! 域名的ssl证书,我们这里用的apache的,
# 所以我们去下载也要下载 apache的证书
# 创建存放证书的文件夹
cd /etc/httpd/
mkdir cert
# 把下下载下来的apache证书通过ftp上传到你的服务器==>httpd==>cert 文件下
# 给大家看看图:
# 言归正传,直接上配置先上httpd-ssl.conf
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
# new.xxxx.cn
<VirtualHost *:443>
ServerName new.xxxx.cn:443
ErrorLog logs/ssl_error_log_new_8080
TransferLog logs/ssl_access_log_new_8080
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 这个证书,去下载apache证书
SSLCertificateFile /etc/httpd/cert/new/2673102_new.xxxx.cn_public.crt
SSLCertificateKeyFile /etc/httpd/cert/new/2673102_new.xxxx.cn.key
SSLCertificateChainFile /etc/httpd/cert/new/2673102_new.xxxx.cn_chain.crt
# 转发
ProxyPass / http://new.xxxx.cn:8080/
ProxyPassReverse / http://new.xxxx.cn:8080/
</VirtualHost>
# 想必大家看到我/etc/httpd/cert/ 下面除了new、www还有test和yaco
# 是的 这里可以配置多个:比如:
<VirtualHost *:443>
ServerName test.xxxx.cn:443
....
....
....
</VirtualHost>
<VirtualHost *:443>
ServerName www.xxxx.cn:443
....
....
....
</VirtualHost>
# http配置 httpd-vhosts.conf
# 监听的80端口,http域名请求默认端口是80
<VirtualHost *:80>
ServerName http://new.xxxx.cn
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPass / http://new.xxxx.cn:8080/
ProxyPassReverse / http://new.xxxx.cn:8080/
</VirtualHost>
# 同样的也是可以多个: 比如:
<VirtualHost *:80>
ServerName http://www.xxxx.cn
....
....
....
</VirtualHost>
5、我们基本上完成了配置,怎么启动这个配置呢?让这个配置生效呢?
- 我们要去httpd的核心配置文件去配置我们创建的配置文件,是我们创建的配置文件生效
- cd /etc/httpd/conf
- vi httpd.conf 编辑核心配置文件
- 加入以下配置: 我相信大家很熟悉!
# 引用httpd模块功能 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule ssl_module modules/mod_ssl.so # 刚刚的新建的配置文件 Include conf/extra/httpd-vhosts.conf Include conf/extra/httpd-ssl.conf
如我服务器的配置:
6、systemctl restart httpd.service 重启 httpd服务! 然后就可以https://new.xxxx.cn
7、捋一捋: httpd(apache)、ssl 模块(包括证书)、 ssl配置(https)与非ssl配置(http)。