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的配置,再弄這個重定向,不懂的歡迎留言!

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