tomcat下配置https

Tomcat 簡介

Tomcat是Apache Jakarta的子項目之一,作爲一個優秀的開源web應用服務器,全面支持jsp1.2以及servlet2.3規範。因其技術先進、性能穩定,而且免費,因而深受Java愛好者的喜愛並得到了部分軟件開發商的認可,成爲目前比較流行的web應用服務器。

https(Secure Hypertext Transfer Protocol)安全超文本傳輸協議 簡介

https是以安全爲目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層。

它是由Netscape開發並內置於其瀏覽器中,旨在達到在開放網絡(Internet)上安全保密地傳輸信息的目的。

用於對數據進行壓縮和解壓操作,並返回網絡上傳送回的結果。HTTPS實際上應用了Netscape的完全套接字層(SSL)作爲HTTP應用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40 位關鍵字作爲RC4流加密算法,這對於商業信息的加密是合適的。HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以確認發送者是誰。。

SSL (Secure Socket Layer)簡介

爲Netscape所研發,用以保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,可確保數據在網絡上之傳輸過程中不會被截取及竊聽。

(附)SSL工作原理
SSL協議使用不對稱加密技術實現會話雙方之間信息的安全傳遞。可以實現信息傳遞的保密性、完整性,並且會話雙方能鑑別對方身份。不同於常用的http協議,我們在與網站建立SSL安全連接時使用https協議,即採用的方式來訪問。
當我們與一個網站建立https連接時,我們的瀏覽器與Web Server之間要經過一個握手的過程來完成身份鑑定與密鑰交換,從而建立安全連接。具體過程如下:
1. 用戶瀏覽器將其SSL版本號、加密設置參數、與session有關的數據以及其它一些必要信息發送到服務器。
2. 服務器將其SSL版本號、加密設置參數、與session有關的數據以及其它一些必要信息發送給瀏覽器,同時發給瀏覽器的還有服務器的證書。如果配置服務器的SSL需要驗證用戶身份,還要發出請求要求瀏覽器提供用戶證書。
3. 客戶端檢查服務器證書,如果檢查失敗,提示不能建立SSL連接。如果成功,那麼繼續。
4. 客戶端瀏覽器爲本次會話生成pre-master secret,並將其用服務器公鑰加密後發送給服務器。
5. 如果服務器要求鑑別客戶身份,客戶端還要再對另外一些數據簽名後並將其與客戶端證書一起發送給服務器。
6. 如果服務器要求鑑別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結束本次會話。如果檢查通過,服務器用自己的私鑰解密收到的pre-master secret,並用它通過某些算法生成本次會話的master secret。
7. 客戶端與服務器均使用此master secret生成本次會話的會話密鑰(對稱密鑰)。在雙方SSL握手結束後傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數量級以上,能夠顯著提高雙方會話時的運算速度。
8. 客戶端通知服務器此後發送的消息都使用這個會話密鑰進行加密。並通知服務器客戶端已經完成本次SSL握手。
9. 服務器通知客戶端此後發送的消息都使用這個會話密鑰進行加密。並通知客戶端服務器已經完成本次SSL握手。
10. 本次握手過程結束,會話已經建立。雙方使用同一個會話密鑰分別對發送以及接受的信息進行加、解密。

 

單向認證:

1、生成服務器端證書 
 

  1. keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650 

 

2、由於是單向認證,沒有必要生成客戶端的證書,直接進入配置tomcat service.xml文件
 

  1. <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" 
  2.                maxThreads="150" scheme="https" secure="true" 
  3.                clientAuth="false" sslProtocol="TLS" keystoreFile="c:\server.jks" keystorePass="password"/> 

注意protocal屬性值的設置。clientAuth="false"表示單向認證

重啓tomcat  輸入:https://localhost:8443/

 

雙向認證參考:http://ss3ex.iteye.com/blog/607674

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章