1. 程式人生 > >Tomcat配置https及訪問http自動跳轉至https

Tomcat配置https及訪問http自動跳轉至https

以下文章本人配置成功,證明真實有效,故轉載分享給大家,希望對大家有幫助。

https介紹:

HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。 它是一個URI scheme(抽象識別符號體系),句法類同http:體系。用於安全的HTTP資料傳輸。https:URL表明它使用了HTTPS,但HTTPS存在不同於HTTP的預設埠及一個加密/身份驗證層(在HTTPTCP之間)。這個系統的最初研發由網景公司進行,提供了身份驗證與加密通訊方法,現在它被廣泛用於全球資訊網上安全敏感的通訊,例如交易支付方面


與http區別:

    一、https協議需要到ca申請證書,一般免費證書很少,需要交費。

二、http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。

三、httphttps使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。       

四、http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

SSL協議:

  SSL安全套接層協議(Secure Socket Layer)

  為Netscape所研發,用以保障在Internet上資料傳輸之安全,利用資料加密(Encryption)

技術,可確保資料在網路上之傳輸過程中不會被擷取及竊聽。目前一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之IE.Netscape瀏覽器即可支援SSL

  當前版本為3.0。它已被廣泛地用於Web瀏覽器與伺服器之間的身份認證和加密資料傳輸。

SSL協議位於TCP/IP協議與各種應用層協議之間,是一種國際標準的加密及身份認證通訊協議,TCP提供一個可靠的端到端的安全服務,為兩個通訊個體之間提供保密性和完整性(身份鑑別)SSL協議可分為兩層:SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP

)之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支援。SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。

如何配置:
1、生成伺服器端證書檔案
可以使用Windows系統或者Linux系統 (1) Windows環境 條件:已經安裝JDK 步驟: l 進入%JAVA_HOME%/bin目錄 l 執行命令 keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 36500 引數簡要說明:“F:\tomcat.keystore”含義是將證書檔案儲存在F盤,證書檔名稱是tomcat.keystore ;“-validity 36500含義是證書有效期,36500表示100年,預設值是90 l 在命令列填寫必要的引數: A、輸入keystore密碼:此處需要輸入大於6個字元的字串 B、“您的名字與姓氏是什麼?”這是必填項,並且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你將來要在瀏覽器中輸入的訪問地址 C、 “你的組織單位名稱是什麼?”、“您的組織名稱是什麼?”、“您所在城市或區域名稱是什麼?”、“您所在的州或者省份名稱是什麼?”、“該單位的兩字母國 家程式碼是什麼?”可以按照需要填寫也可以不填寫直接回車,在系統詢問“正確嗎?”時,對照輸入資訊,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的資訊 D、輸入<tomcat>的主密碼,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一致,設定其它密碼也可以 l 完成上述輸入後,直接回車則在你在第二步中定義的位置找到生成的檔案 (2) Linux環境 條件:安裝了JDK 步驟: l 進入$JAVA_HOME/bin目錄 l 執行命令 ./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500 引數簡要說明:“/etc/tomcat.keystore”含義是將證書檔案儲存在路徑/usr/local/ac/web/下,證書檔名稱是tomcat.keystore ;“-validity 36500含義是證書有效期,36500表示100年,預設值是90 l 在命令列填寫必要的引數: 截圖如下: 截圖部分說明: AEnter keystore password:此處需要輸入大於6個字元的字串 B、“What is your first and last name?”這是必填項,並且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你將來要在瀏覽器中輸入的訪問地址 C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填寫也可以不填寫直接回車,在系統詢問“correct?”時,對照輸入資訊,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的資訊 DEnter key password for <tomcat>,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一致,設定其它密碼也可以 l 完成上述輸入後,直接回車則在你在第二步中定義的位置找到生成的檔案 2、配置TOMCAT伺服器 (1) 如果你是在Windows環境中生成證書檔案,則需要將生成的證書tomcat.keystore拷貝到Tomcat將要引用的位置,假設tomcat的應用證書的路徑是“/etc/tomcat.keystore”,則需要將證書檔案拷貝到“etc/”下;如果是在Linux環境按照上述介紹的步驟生成證書檔案的話,此時證書檔案已經在“etc/”下。 (2) 配置Tomcat,開啟$CATALINA_HOME/conf/server.xml,修改如下,
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


修改引數=>
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />


<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS"/>
 -->


去掉註釋且修改引數=>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="F:/tomcat.keystore" keystorePass="123456"/>

註釋:標識為淡藍色的兩個引數,分別是證書檔案的位置和<tomcat>的主密碼,在證書檔案生成過程中做了設定
   <Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />


修改引數=>
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />


(3) 開啟$CATALINA_HOME/conf/web.xml,在該檔案末尾增加: 2.強制https訪問

在tomcat\conf\web.xml中的</welcome-file-list>後面加上這樣一段:
Java程式碼
    <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>



3、上述配置完成後,重啟TOMCAT後即可以使用SSLIE位址列中可以直接輸入地址不必輸入 或者  ;也可以輸入  會跳轉成為 “https://” 來登入 4、注意事項: (1) 生成證書的時間,如果IE客戶端所在機器的時間早於證書生效時間,或者晚於有效時間,IE會提示“該安全證書已到期或還未生效” (2) 如果IE提示安全證書上的名稱無效或者與站點名稱不匹配,則是由生成證書時填寫的伺服器所在主機的域名“您的名字與姓氏是什麼?”/What is your first and last name?”不正確引起的