Tomcat6.0 SSL的配置
1. 參考:
Tomcat 6.0 自帶的文檔docs/ssl-howto.html,詳細介紹了配置過程。
2. 目的:
以下詳細描述配置過程,僅作為備忘錄。
3. 備忘錄:
Step1,安裝tomcat 6.0.18,此為當前最新版本,需JDK5.0或以上。
l JDK安裝后,可以在命令行下使用如下命令檢測是否成功。
C:\Documents and Settings\new>java -version
java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
看到以上藍色信息,則表示JDK安裝配置成功。
l Tomcat的運行需要配置JDK_HOME和JRE_HOME環境變量,JRE_HOME默認等于JDK_HOME的值。
Step2,創建服務器端certificate keystore和自簽名certificate。
在命令行下使用如下命令:
C:\Documents and Settings\new>keytool -genkey -alias mykey -keyalg RSA -keystore server.keystore
輸入keystore密碼:123456
再次輸入新密碼:123456
您的名字與姓氏是什么?
[Unknown]: dinstone
您的組織單位名稱是什么?
[Unknown]: advance software ltd.
您的組織名稱是什么?
[Unknown]: china
您所在的城市或區域名稱是什么?
[Unknown]: beijing
您所在的州或省份名稱是什么?
[Unknown]: beijing
該單位的兩字母國家代碼是什么
[Unknown]: cn
CN=dinstone, OU=advance software ltd., O=china, L=beijing, ST=beijing, C=cn 正確嗎?
[否]: y
輸入<mykey>的主密碼
(如果和 keystore 密碼相同,按回車):
在C:\Documents and Settings\new下可以找到一個文件:server.keystore,其中就包含了自簽名的證書。
注意:
這里要求certificate keystore 和certificate的密碼一致,此為Tomcat的約束。
Step3,在%TOMCAT_HOME%目錄下新建目錄keystore,并拷貝server.keystore到其目錄下。
Step4,修改%TOMCAT_HOME%/conf/server.xml文件。添加https的Connector。
<Connector
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="keystore/server.keystore" keystorePass="123456"
clientAuth="false" sslProtocol="TLS"/>
注意:
keystoreFile指向文件%TOMCAT_HOME%/keystore/server.keystore文件。
keystorePass就是剛才生成certificate keystore的密碼。
Step5,測試Https。訪問https://localhost:8443/,提示有不安全的證書,接受證書,看到可親的tom貓。
4. 延伸
某些情況下,某些特定資源需要走https協議,如登錄請求。這時,我們可以在web.xml中配置約束。
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL Resource</web-resource-name>
<url-pattern>/login.jsp</url-pattern>
</web-resource-collection>
<user-da
<transport-guarantee>
CONFIDENTIAL
</transport-guarantee>
</user-da
</security-constraint>
這樣當使用如下請求訪問登錄頁面時,則服務器將該請求建立在https連接上。