tomcat 支援https

來源:互聯網
上載者:User

標籤:style   http   color   ar   os   使用   sp   java   for   

HTTP是平時瀏覽網頁時候使用的一種協議。HTTP協議傳輸的資料都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私資訊非常不安全。為了保證 這些隱私資料能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的資料進行加密,從而就誕生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定義在RFC 6101中,之後IETF對SSL 3.0進行了升級,於是出現了TLS(Transport Layer Security) 1.0,定義在RFC 2246。實際上我們現在的HTTPS都是用的TLS協議,但是由於SSL出現的時間比較早,並且依舊被現在瀏覽器所支援,因此SSL依然是HTTPS的 代名詞,但無論是TLS還是SSL都是上個世紀的事情,SSL最後一個版本是3.0,今後TLS將會繼承SSL優良血統繼續為我們進行Data Encryption Service。目前 TLS的版本是1.2,定義在RFC 5246中,暫時還沒有被廣泛的使用。


1:進入%JAVA_HOME%/bin目錄,使用如下命令進入目錄:

cd “c:\Program Files\Java\jdk1.6.0_11\bin” 

使用keytool為Tomcat產生認證,假定目標機器的網域名稱是“localhost”,keystore檔案存放在“D:\home\tomcat.keystore”,口令為“password”,使用如下命令產生:

keytool -genkey -v -alias tomcat -keyalg RSA -keystoreD:\home\tomcat.keystore -validity 36500 (36500表示100年,預設90天)

 

在命令列填寫必要參數,名字。單位,什麼的  隨便輸入字串就行、



2:為用戶端產生認證:keytool -genkey -v -alias mykey -keyalg RSA-storetype PKCS12 -keystore D:\home\mykey.p12(mykey為自訂)。對應的認證庫存放在“D:\home\mykey.p12”,用戶端的CN可以是任意值。雙擊mykey.p12檔案,即可將認證匯入至瀏覽器(用戶端)。

 

3:讓伺服器信任用戶端認證

keytool -export -alias mykey -keystore D:\home\mykey.p12 -storetypePKCS12 -storepass password -rfc -fileD:\home\mykey.cer 

(mykey為自訂與用戶端定義的mykey要一致,password是你設定的密碼)。通過以上命令,用戶端認證就被我們匯出到“D:\home\mykey.cer”檔案了。

 

4:檔案匯入到伺服器的認證庫

將該檔案匯入到伺服器的認證庫,添加為一個信任認證使用命令如下:

  keytool -import -v -file D:\home\mykey.cer-keystore D:\home\tomcat.keystore

通過list命令查看伺服器的認證庫,可以看到兩個認證,一個是伺服器憑證,一個是受信任的用戶端認證:

keytool -list -keystore D:\home\tomcat.keystore(tomcat為你設定伺服器端的認證名)。

 

 

5:讓用戶端信任伺服器憑證

keytool -keystore D:\home\tomcat.keystore -export -alias tomcat-file D:\home\tomcat.cer (tomcat為你設定伺服器端的認證名)。

通過以上命令,伺服器憑證就被我們匯出到“D:\home\tomcat.cer”檔案了。雙擊tomcat.cer檔案,按照提示安裝認證,將認證填入到“可信任的根憑證授權單位”。

 

 

6:配置tomcat

開啟Tomcat根目錄下的/conf/server.xml,找到Connector port="8443"配置段,修改為如下:

 

 

SSLEnabled="true" maxThreads="150" scheme="https"

secure="true" clientAuth="true" sslProtocol="TLS"

keystoreFile="D:\\home\\tomcat.keystore" keystorePass="123456"

truststoreFile="D:\\home\\tomcat.keystore" truststorePass="123456"/>

(tomcat要與產生的服務端認證名一致)

屬性說明:

 

clientAuth:設定是否雙向驗證,預設為false,設定為true代表雙向驗證

keystoreFile:伺服器憑證檔案路徑

keystorePass:伺服器憑證密碼

truststoreFile:用來驗證用戶端認證的根憑證,此例中就是伺服器憑證

truststorePass:根憑證密碼

 

7:測試

在瀏覽器中輸入:https://localhost:8443/,會彈出選擇用戶端認證介面,點擊“確定”,會進入tomcat首頁,地址欄後會有“鎖”表徵圖,表示本次會話已經通過HTTPS雙向驗證,接下來的會話過程中所傳輸的資訊都已經過SSL資訊加密。



8:說明

值得注意的是  在eclipse下測試失敗了,myeclipse下正常,直接單獨tomcat測試也成功。不知道是不是eclipse的bug。 eclipse在匯入以後整合的tomcat配置了,並不是在tomcat所在路徑,eclipse整合tomcat會覆蓋磁碟路徑上的tomcat。


tomcat 支援https

tomcat 支援https

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.