Apache(Httpd 2.XX) 分别实现Https转发到二级域名

1、我选择的Centos 7 

 2、安装Httpd, 这里我就不说了,我有一篇httpd搭建文件服务器的博客里面讲到了httpd的安装 Httpd安装

3、 Centos 7 安装Httpd默认路径是 /etc/httpd: 如下图:

  1. 看到我用红色框框框出来的modules 文件夹(httpd支持的模块儿)!如下图: 

  2. 看看有没有mod_ssl.so 模块,就是我用红色框框框出来的文件,如果没有进行安装!
  3. mod_ssl.so 安装方法: yum install -y mod_ssl
  4. 安装之后会发现/etc/httpd/conf.d/ssl.conf, 这是httpd安装mod_ssl.so之后默认生成的配置文件,我自己配置,所以我选择删掉,你们自己可以自行修改!(你也可以删掉跟着我下面的配置走 ! )
  5. 我是直接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)。

发布了76 篇原创文章 · 获赞 47 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_40058321/article/details/101203017
今日推荐