tomcat配置HTTPS

SSL協議使用不對稱加密技術實現雙方之間信息的安全傳遞。能夠實現信息傳遞的保密性、完整性,而且會話雙方能鑑別對方身份。 
與網站創建https鏈接時,瀏覽器與WEB SERVER之間要通過一個握手的過程來完成身份鑑定與密鑰交換,創建安全鏈接。過程是: 
一、用戶瀏覽器將其SSL版本號、加密設置參數、與session有關的數據以及其它一些必要信息發送到服務器 
二、服務器將其SSL版本號、加密設置參數、與session有關的數據以及其它必要信息發送給瀏覽器,同時發給瀏覽器的還有服務器的證書。若是配置服務器的SSL須要驗證用戶身份,還要發出請求瀏覽器提供用戶證書。 
三、客戶端檢查服務器證書,若是檢查失敗,提示不能創建SSL鏈接,若是成功,則繼續 
四、客戶端瀏覽器爲本次會話生成pre-master secret,並將其用服務器公鑰加密後發送給服務器。 
五、若是服務器要求鑑別客戶身份,客戶端還要再對另一些數據簽名後並將其與客戶端證書一塊兒發送給服務器。 
六、若是服務器要求鑑別客戶身份,則檢查簽署客戶證書的CA是否可信。若是不在信任列表中,結束本次會話。若是檢查經過,服務器用本身的私鑰解密收到的 pre-master secret,並用它經過某些算法生成本次會話的master secret。 
七、客戶端與服務器均使用此master secret生成本次會話的會話密鑰(對稱密鑰)。在雙方SSL握手結束後傳遞任何消息均使用此會話密鑰。這樣作的主要緣由是對稱加密比非對稱加密的運算量低一個數量級以上,可以顯著提升雙方會話時的運算速度。 
八、客戶端通知服務器此後發送的消息都使用這個會話密鑰進行加密。並通知服務器客戶端已經完成本次SSL握手。 
九、服務器通知客戶端此後發送的消息都使用這個會話密鑰進行加密。並通知客戶端服務器已經完成本次SSL握手。 
十、本次握手過程結束,會話已經創建。雙方使用同一個會話密鑰分別對發送以及接受的信息進行加、解密。 java

一、生成服務器端證書文件 
可使用Windows系統或者Linux系統 
(1) Windows環境 
條件:已經安裝JDK 
步驟: 
l 進入%JAVA_HOME%/bin目錄 
l 執行命令 
keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 36500 web

參數簡要說明:「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」從新填寫上面的信息 tomcat

D、輸入<tomcat>的主密碼,這項較爲重要,會在tomcat配置文件中使用,建議輸入與keystore的密碼一致,設置其它密碼也能夠 安全

l 完成上述輸入後,直接回車則在你在第二步中定義的位置找到生成的文件 服務器

(2) Linux環境 session

條件:安裝了JDK 網站

步驟: this

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 在命令行填寫必要的參數: 
截圖以下: 
截圖部分說明: 
A、Enter 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」從新填寫上面的信息 
D、Enter key password for <tomcat>,這項較爲重要,會在tomcat配置文件中使用,建議輸入與keystore的密碼一致,設置其它密碼也能夠 
l 完成上述輸入後,直接回車則在你在第二步中定義的位置找到生成的文件 
二、配置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="/etc/tomcat.keystore" keystorePass="www.gbcom.com.cn"/> 
註釋:標識爲淡藍色的兩個參數,分別是證書文件的位置和<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,在該文件末尾增長: 
<security-constraint> 
<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> 
三、上述配置完成後,重啓TOMCAT後便可以使用SSL。IE地址欄中能夠直接輸入地址沒必要輸入「http://」 或者 「https://」 ;也能夠輸入 「http:// 」 會跳轉成爲 「https://」 來登陸 
四、注意事項: 
(1) 生成證書的時間,若是IE客戶端所在機器的時間早於證書生效時間,或者晚於有效時間,IE會提示「該安全證書已到期或還未生效」 
(2) 若是IE提示「安全證書上的名稱無效或者與站點名稱不匹配」,則是由生成證書時填寫的服務器所在主機的域名「您的名字與姓氏是什麼?」/「What is your first and last name?」不正確引發的 
五、遺留問題: 
(1)若是AC主機不能經過域名查找,必須使用IP,可是這個IP只有在配置後才能肯定,這樣證書就必須在AC肯定IP地址後才能生成 
(2)證書文件只能綁定一個IP地址,假設有10.1.25.250 和 192.168.1.250 兩個IP地址,在證書生成文件時,如使用了10.1.25.250,經過IE就只能使用10.1.25.250 來訪問AC-WEB,192.168.1.250是沒法訪問AC-WEB的。 

參考資料: 
http://tianli.blog.51cto.com/190322/90101 
http://qixiaopeng.javaeye.com/blog/466298

相關文章
相關標籤/搜索