天天看點

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

在另一篇文章中,已經講述了怎麼在ECS(Ubantu版)上安裝docker和Tomcat,并順利啟動和通路,該篇文章重點說明如何調整Tomcat配置,與域名映射一緻,并采用HTTPS通路

一、進行ECS伺服器域名備案

操作步驟:開通ECS伺服器後,進入備案管理,先申請備案服務号,再到ICP備案中,按要求填寫有關資訊,并填寫要備案的域名,例如:www.xxxx.net.cn

如下圖所示:

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

後續會按階段送出和驗證一些資訊,如手機核實法人及網站負責人,上傳備案委托書、備案幕布拍照等,初審通過後,送出到信管局後,需要等17天左右

二、修改Tomcat的配置資訊

進入tomcat容器

docker exec -it 容器名字或者id /bin/bash

如下圖所示,先使用 docker ps 檢視容器名字、ID,然後使用上述指令

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

輸入vim指令,顯示該指令未找到,先安裝

指令行: sudo apt-get install vim,如下圖所示,先安裝,再重新進入Tomcat容器

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

重新進入還是不行,網上搜尋了下,對鏡像有了更深入的了解,鏡像就是一個靜态的安裝包,而容器才是動态的可用服務,如果我們使用vim在容器中修改檔案,鏡像并沒有改變,如果再次啟動容器,又是按之前的鏡像啟動,原來修改就又恢複了,這種辦法不是解決問題的根本辦法,那麼參照挂載的方式,隻有把容器中的鏡像配置檔案,複制到Ubantu的檔案夾中,然後進行修改,修改完成後,再進行配置檔案挂載,則可以從根本上解決問題,以下是具體的操作步驟:

1、使用cp的指令,進行配置檔案複制:

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

指令行:docker ps           檢視目前的容器,擷取 {容器ID},放置到下一個指令行中替換   {容器ID}

指令行:docker cp {容器ID}:/user/local/tomcat/conf  /opt/software/tomcat-conf

兩個部分說明:

/user/local/tomcat/conf        為Tomcat容器的Tomcat鏡像的位置

/opt/software/tomcat-conf       為建立立存放Tomcat配置檔案的位置

以上兩端路徑,中間使用空行隔開

2、然後使用FileZilla 連接配接ECS的Ubantu伺服器,可以看到在對應路徑下,已經有複制過來的配置檔案

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

此處主要對server.xml進行修改,故把server.xml複制到本地,然後進行修改

3、server.xml的修改内容包括三個部分:

(1)8080端口設定為80端口,直接映射80端口,為了省略浏覽器通路時候輸入端口号:8080

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash
(2)把webapps下的hostname改為備案的域名:www.xxxx.net.cn,并把context指向webapps下的項目,我們此處用的是website
阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

為增加的一行,其他的均為直接在原檔案位置做修改

(3)配置HTTPS通路

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash
在上述修改基礎上,再把8443改為443,同時增加配置,非80端口的也跳轉至443
阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

4、配置SSL證書,開啟https通路

 找到

     

         

          CLIENT-CERT

          Client Cert Users-only Area

          SSL

          /*

          CONFIDENTIAL

6、待以上server.xml和web.xml配置調整完成後,把server.xml、web.xml、pfx證書等三個檔案,使用FileZilla傳輸到/opt/software/tomcat-conf  檔案夾中替換目前檔案,如下圖所示:

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

7、把/opt/software/tomcat-conf   和  /user/local/tomcat/conf  進行挂載,并啟動Tomcat

docker run -d -v /opt/software/tomcat-conf:/usr/local/tomcat/conf  -p 80:80 docker.io/tomcat 

 docker run -d -p 443:443 docker.io/tomcat 

8、重新啟動容器,使用浏覽器通路驗證

目前備案正常進行中,進行上述配置後,域名映射和解析均為完成成功,隻能等備案結果

三、iptables開放端口

1、# 檢查并安裝

檢查

sudo whereis iptables

安裝

sudo apt-get install iptables

檢視防火牆配置

/sbin/iptables -L -n

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

2、建立規則檔案

建立目錄和檔案

mkdir /etc/iptables & vi /etc/iptables/rules.conf

加入内容并儲存:

*filter

預設INPUT 的政策是DROP 即拒絕所有的外來請求

:INPUT DROP [0:0]

一般情況下用不到FORWARD 可以配置為預設DROP

:FORWARD DROP [0:0]

本機對其他機器通路設定為預設ACCEPT

:OUTPUT ACCEPT [0:0]

允許已經建立和相關的連接配接

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

允許icmp協定(即ping)

-A INPUT -p icmp -j ACCEPT

允許回環請求

-A INPUT -i lo -j ACCEPT

開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

COMMIT

按ESC鍵退出輸入狀态,SHIFT+冒号,彈出提示,輸入   wq,退出并儲存

3、使防火牆生效:

iptables-restore < /etc/iptables/rules.conf

4、建立檔案,添加以下内容,使防火牆開機啟動

vi /etc/network/if-pre-up.d/iptables

!/bin/bash

4、添加執行權限:

chmod +x /etc/network/if-pre-up.d/iptables

5、檢視規則是否生效:

iptables -L -n

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

6、在關閉容器後,出現如下問題:

阿裡雲ECS官網域名映射及Tomcat配置調整,最終使用HTTPS和域名直接通路檢查安裝檢視防火牆配置建立目錄和檔案預設INPUT 的政策是DROP 即拒絕所有的外來請求一般情況下用不到FORWARD 可以配置為預設DROP本機對其他機器通路設定為預設ACCEPT允許已經建立和相關的連接配接允許icmp協定(即ping)允許回環請求開放端口22 80(如果要開放其他端口 繼續添加開放規則即可)!/bin/bash

按上圖所示,出現錯誤資訊為:

Error response from daemon: driver failed programming external connectivity on endpoint zealous_volhard (e4ebc07db12c56abfa13505e1bbd3b5462102b0864cd0a8f1b26a0a0361cd9b8):  (iptables failed: iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 80 -j ACCEPT: iptables: No chain/target/match by that name.

 (exit status 1))

該問題的解決辦法為:重新開機docker服務,即可OK,如上圖在錯誤資訊下的操作

待備案成功後,在進行後續操作