centOS上安裝Tomcat8並配置多域名多SSL

8以上一直多SSL。用7的趕緊升級。

centos6、Tomcat8.5.50、JDK1.8

1.下載。

https://tomcat.apache.org/download-80.cgi

 

cd /server/backup/software
# tar -zxvf apache-tomcat-8.5.50.tar.gz
# mv apache-tomcat-8.5.50  /usr/tomcat8.5.50

編輯配置文件,其他一樣。

二、配置SSL。此處不介紹lets encrpy,請查看另一篇:

這裏介紹Tomcat8配置多域名多SSL,8+以後支持了此配置,Tomcat7配置方式不一致,此處不贅述,只貼配置文件展示。

免費SSL獲取:https://freessl.cn

根據提示操作,會下載https://keymanager.org/#

繼續在瀏覽器點擊繼續:

點擊驗證,然後跳轉如下界面:

 

點擊保存到keymanager:

導出PKCS12,Rookie123

其他的按照提示一步一步操作,挺簡單的。

導出PFX格式證書後,上傳雲服務器。

/usr/tomcat8.5.50/cert

 配置Tomcat配置文件:

將註釋的解開:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 #找到以上參數,去掉<!- - 和 - ->這對註釋符並修改爲如下參數,對HTTPS默認端口進行配置:
 <Connector port="80" protocol="HTTP/1.1"   #將Connector port修改爲80。
               connectionTimeout="20000"
               redirectPort="443" />    #將redirectPort修改爲SSL默認端口443,讓HTTPS請求轉發到443端口。

修改如下:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
找到備註釋的:
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
修改成:

證書密碼,就是你在keymanager裏面設置的如上方我寫的Rookie123,如果是阿里雲等,解壓縮後會有TXT證書密碼文件。 

JKS type=RSA

    <Connector port="443"
          protocol="org.apache.coyote.http11.Http11NioProtocol"
          maxThreads="150"
          SSLEnabled="true">
        <SSLHostConfig>
            <Certificate       certificateKeystoreFile="/usr/local/tomcat/cert/證書域名.pfx"
             certificateKeystorePassword="證書密碼"
             certificateKeystoreType="PKCS12" />
        </SSLHostConfig>
    </Connector>

如果配置多域名多SSL:

 

    <Connector port="443"
          protocol="org.apache.coyote.http11.Http11NioProtocol"
          maxThreads="150"
          SSLEnabled="true"
defaultSSLHostConfigName="localhost">
        <SSLHostConfig hostName="localhost">
            <Certificate       certificateKeystoreFile="/usr/tomcat8.5.50/cert/t1-shidongvr-com-iis-1223225856.pfx"
             certificateKeystorePassword="Rookie123"
             certificateKeystoreType="PKCS12" />
        </SSLHostConfig>
        <SSLHostConfig hostName="t2.shidongvr.com">
            <Certificate       certificateKeystoreFile="/usr/tomcat8.5.50/cert/t2-shidongvr-com-iis-1223225447.pfx"
             certificateKeystorePassword="Rookie123"
             certificateKeystoreType="PKCS12" />
        </SSLHostConfig>
    </Connector>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

#找到以上參數,去掉<!- - 和 - ->這對註釋符並修改爲如下參數:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />  #將redirectPort修改爲443,讓HTTPS請求轉發到443端口。

(可選步驟)在web.xml文件最底部添加以下內容,實現HTTP自動跳轉爲HTTPS。 (阿里)

此段摘自ali:
<security-constraint> 
         <web-resource-collection > 
              <web-resource-name >SSL</web-resource-name>  
              <url-pattern>/*</url-pattern> 
       </web-resource-collection> 
       <user-data-constraint> 
                    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
       </user-data-constraint> 
    </security-constraint>

打開web.xml 在welcome-file-list標籤下添加:

<login-config>
  <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
  <!-- Authorization setting for SSL -->
    <web-resource-collection >
        <web-resource-name >SSL</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

 

 

最後,驗證,瀏覽器訪問:

可以看到一把鎖子:

 

發佈了203 篇原創文章 · 獲贊 120 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章