1. 程式人生 > >配置Tomcat使用https協議(配置SSL協議)

配置Tomcat使用https協議(配置SSL協議)

操作 method enable 安裝 文件的 chan 根據 域名 add

轉載地址:http://ln-ydc.iteye.com/blog/1330674

內容概覽:

如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 協議

1.生成安全證書

2.配置tomcat

生成安全證書:

1.java環境:因為SUN公司提供了制作證書的工具keytool。

在JDK 1.4以後的版本中都包含了這一工具,它的位置為<JAVA_HOME>\bin\keytool.exe。

2.創建證書的命令:

Cmd代碼 技術分享
  1. keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"

參數的意思如下:

技術分享

這裏密碼我輸的是tomcat,名字與姓氏為域名,其它的根據具體情況輸入

技術分享

以上命令將生產一對非對稱密鑰和自我簽名的證書f:\tomcat.keystore.

將證書保存到你要存放的地方,我的保存在D:\Tools\Web\ssl\tomcat.keystore

註意:“名字與姓氏”應該是域名,輸成了姓名,和真正運行的時候域名不符,會出問題

---------------------------------------------------------------------------------------------------------------------------

配置tomcat:

定位到tomcat的安裝目錄,找到conf下的server.xml文件

找到如下已經被註釋的代碼:

Xml代碼 技術分享
  1. <!--
  2. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  3. maxThreads="150" scheme="https" secure="true"
  4. clientAuth="false" sslProtocol="TLS" />
  5. -->

去掉註釋,修改為:

Xml代碼 技術分享
  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  2. maxThreads="150" scheme="https" secure="true"
  3. clientAuth="false" sslProtocol="TLS"
  4. keystoreFile="D:\Tools\Web\ssl\tomcat.keystore"
  5. keystorePass="tomcat"
  6. ciphers="tomcat"/>

這裏,密碼和證書的位置根據個人的具體環境而設置,屬性參數如下所述:

屬性 描述
clientAuth 如果設為true,表示Tomcat要求所有的SSL客戶出示安全證書,對SSL客戶進行身份驗證
keystoreFile 指定keystore文件的存放位置,可以指定絕對路徑,也可以指定相對於<CATALINA_HOME>(Tomcat安裝目錄)環境變量 的相對路徑。如果此項沒有設定,默認情況下,Tomcat將從當前操作系統用戶的用戶目錄下讀取名為“.keystore”的文件。
keystorePass 指定keystore的密碼,如果此項沒有設定,在默認情況下,Tomcat將使用“changeit”作為默認密碼。
sslProtocol 指定套接字(Socket)使用的加密/解密協議,默認值為TLS,用戶不應該修改這個默認值。
ciphers 指定套接字可用的用於加密的密碼清單,多個密碼間以逗號(,)分隔。如果此項沒有設定,在默認情況下,套接字可以使用任意一個可用的密碼。

訪問支持ssl的web站點:

啟動本場tomcat,在瀏覽器中輸入:https://localhost:8443/ ,這裏用ie訪問

技術分享

選擇繼續瀏覽此網站

技術分享

---------------------------------------------------------------------------------------------------------------------------

3.強制https訪問

在tomcat\conf\web.xml中的</welcome-file-list>後面加上這樣一段:
Java代碼
1. <login-config>
2. <!-- Authorization setting for SSL -->
3. <auth-method>CLIENT-CERT</auth-method>
4. <realm-name>Client Cert Users-only Area</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>

配置Tomcat使用https協議(配置SSL協議)