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

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

與http區別:

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

       二、http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議


       三、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記錄協議(SSLRecord 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 E:\java\apache-tomcat-7.0.57\tomcat.keystore -validity 36500
參數簡要說明:“E:\java\apache-tomcat-7.0.57\tomcat.keystore”含義是將證書文件保存在E:\java\apache-tomcat-7.0.57這個目錄,證書文件名稱是tomcat.keystore ;“-validity36500”含義是證書有效期,36500表示100年,默認值是90天
l 在命令行填寫必要的參數:
A、輸入keystore密碼:此處需要輸入大於6個字符的字符串
B、“您的名字與姓氏是什麼?”這是必填項,並且必須是TOMCAT部署主機的域名或者IP[如:127.0.0.1],就是你將來要在瀏覽器中輸入的訪問地址
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 -validity36500
參數簡要說明:“/etc/tomcat.keystore”含義是將證書文件保存在路徑/usr/local/ac/web/下,證書文件名稱是tomcat.keystore ;“-validity36500”含義是證書有效期,36500表示100年,默認值是90天
l 在命令行填寫必要的參數:
部分參數說明:
A、Enter keystorepassword:此處需要輸入大於6個字符的字符串
B、“What is your firstand last name?”這是必填項,並且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com或者10.1.25.251],就是你將來要在瀏覽器中輸入的訪問地址
C、“What is the nameof your organizational unit?”、“What is the nameof your organization?”、“What is the nameof your City or Locality?”、“What is the nameof your State or Province?”、“What is thetwo-letter country code for this unit?”可以按照需要填寫也可以不填寫直接回車,在系統詢問“correct?”時,對照輸入信息,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的信息
D、Enter key passwordfor <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="8443"protocol="HTTP/1.1" SSLEnabled="true"
              maxThreads="150" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat.keystore"keystorePass="123456"/>
註釋:標識爲淡藍色的兩個參數,分別是證書文件的位置和<tomcat>的主密碼,在證書文件生成過程中做了設置

 (3) 打開$CATALINA_HOME/conf/web.xml,在該文件末尾增加:
3.強制https訪問

在tomcat\conf\web.xml中的最後加上這樣一段Java代碼:
    1.<login-config>
    2.<!-- Authorization setting for SSL-->
    3.<auth-method>CLIENT-CERT</auth-method>
    4.<realm-name>Client Cert Users-onlyArea</realm-name>
    5.</login-config>
    6.<security-constraint>
    7.<!-- Authorization setting for SSL-->
    8.<web-resource-collection >
    9.<web-resource-name>SSL</web-resource-name>
    10.<url-pattern>/*</url-pattern>
    11.</web-resource-collection>
    12.<user-data-constraint>
    13.<transport-guarantee>CONFIDENTIAL</transport-guarantee>
    14.</user-data-constraint>
    15.</security-constraint>

4、上述配置完成後,重啓TOMCAT後即可以使用SSL。IE地址欄中可以直接輸入地址不必輸入“http://” 或者 “https://” ;也可以輸入 “http:// ” 會跳轉成爲 “https://”來登錄
       訪問之前地址欄的信息:
       訪問之後地址欄的信息:
5、注意事項:如果IE提示“安全證書上的名稱無效或者與站點名稱不匹配”,則是由生成證書時填寫的服務器所在主機的域名“您的名字與姓氏是什麼?”/“What is your firstand last name?”不正確引起的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章