Apache(Httpd 2.4.XXX) 实现强转HTTPS

环境 Centos 7.6 与 Httpd 2.4

首先我们需要会Apache的转发http,也需要会SSL证书的配置(XX云有免费的)

Apache(httpd 2.4.6) 代理转发Http ←点击进入

Apache(Httpd 2.XX) 分别实现Https转发到二级域名←点击进入

上面两个会了之后那就非常好实现了,我们已经实现了http多个项目的转发,https的转发。

我们只需要修改一下http的配置就行,原来的http是直接转发到Tomccat运行的端口号(如下):

# 转发http
<VirtualHost *:80>
    ServerName http://www.domain.cn
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests Off
    # 转发
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

接下来我们需要引入重定向模块:

[root@VM_0_13_centos ~]# vim /etc/httpd/conf/httpd.conf

# 引入rewrite.so
LoadModule rewrite_module modules/mod_rewrite.so

引入之后把算来的http转发修改为重定向(http的转发===>重定向https):

<VirtualHost *:80>
    ServerName http://www.domain.cn
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.domain.cn [NC]
    RewriteRule ^(.*) https://www.domain.cn/ [R=301,L]
</VirtualHost>

原理很简单,首先http转发配置好,Https也配置好;测试http与https都可以访问,我们就直接修改http的转发,把转发重定向到HTTPS,不懂的需要看上面两篇博客

# 这是https的配置
<VirtualHost *:443>
    ServerName https://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
	
    # 转发(为什么这里还要配转发, 如果配置了过很多转发此处同时也需要指定)
    # 转发到 new.domain.cn的Tomcat项目的端口号
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

一定要仔细先看Http的配置,再看HTTPS的配置,再弄这个重定向,不懂的欢迎留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章