tomcat 配置多域名訪問訪問同一個網站的相同或者不一樣項目的全站SSL證書

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。

關於證書的申請這裏就很少說了,阿里雲和騰訊雲均可以申請免費的SSL證書,有效期爲一年,到期能夠再申請。網上搜一下,就能夠去申請了。web


而後關於tomcat配置SSL證書的,網上也不少教程,這裏推薦騰訊雲的官方證書安裝指引點擊跳轉至騰訊雲證書安裝指引apache


不過如今的需求是多個域名訪問同一個網站,而且多個域名綁定同一IP的。好比我,在騰訊雲有一臺服務器,解析了兩個域名,如今我想讓這兩個域名能同時以https訪問個人網站,能夠是訪問同一個項目,也能夠是訪問不一樣的項目。在參照前面的安裝指引完成以後,只能用一個域名訪問,而另外一個顯示證書不安全。tomcat

接下來言歸正傳。安全


一、首先將申請好的證書下載解壓。以下圖:服務器

這裏寫圖片描述

在tomcat文件夾下有兩個文件,一個是密碼,一個是證書,後面咱們都須要。app

注意: 須要分別給兩個域名申請證書!webapp


二、 編輯tomcat/conf 文件夾下的 server.xml文件,一共修改兩處,其餘地方都不變。首先修改第一個地方。這裏聲明瞭兩個主機(host)網站

<!-- 第1處 -->
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="www.hemingsheng.cn" >
        <SSLHostConfig hostName="www.hemingsheng.cn">
            <Certificate certificateKeystoreFile="/home/key_https/Tomcat/www.hemingsheng.cn.jks"
                certificateKeystorePassword="這裏填txt文件中的密碼" type="RSA" 
            />
        </SSLHostConfig>

        <SSLHostConfig hostName="www.tinger.wang">
            <Certificate certificateKeystoreFile="/home/key_https/Tomcat/www.tinger.wang.jks"
                certificateKeystorePassword="這裏填另外一個txt文件中的密碼" type="RSA" />
        </SSLHostConfig>
    </Connector>
 

三、 若是兩個域名訪問同一個項目,按照以下修改阿里雲

<Host name="www.hemingsheng.cn" appBase="/root/webfile/webapps" unpackWARs="false" autoDeploy="true">
                <Alias>www.hemingsheng.cn</Alias>  
                <Alias>www.tinger.wang</Alias>
            <!-- 設置默認項目名稱 -->
            <Context path="" docBase="/root/webfile/web" reloadable="true" /> 
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                    prefix="localhost_access_log" suffix=".txt"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        </Host>
這裏的關鍵在於 <Alias>www.hemingsheng.cn</Alias>,將兩個域名主機指向了同一個項目

四、 若是要配置兩個域名訪問不一樣的項目,則按照以下配置.net

<!-- 
   這裏我兩個主機配置了相同的項目,這樣修改會實例化兩個web項目,雖然兩個域名能夠訪問同一個項目,可是會啓動兩個虛擬機,不推薦。
   這個訪問推薦用來配置兩個域名訪問兩個不一樣的項目
-->

<Host name="www.hemingsheng.cn"  appBase="/root/webfile/webapps" unpackWARs="false" autoDeploy="true">
        <!-- 設置默認項目名稱 -->
        <Context path="" docBase="/root/webfile/web" reloadable="true" /> 
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>

      <Host name="www.tinger.wang"  appBase="/root/webfile/webapps" unpackWARs="false" autoDeploy="true">
        <!-- 設置默認項目名稱 -->
        <Context path="" docBase="/root/webfile/web" reloadable="true" /> 
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 

而後重啓,發現兩個域名均可以用https訪問了。

相關文章
相關標籤/搜索