Step1,建立伺服器端certificate keystore和自簽名certificate。
在指令行下使用如下指令:
C:\Documents and Settings\new>keytool -genkey -alias mykey -keyalg RSA -keystore server.keystore
輸入keystore密碼:123456
再次輸入新密碼:123456
您的名字與姓氏是什麼?
[Unknown]: test
您的組織機關名稱是什麼?
[Unknown]: work
您的組織名稱是什麼?
[Unknown]: china
您所在的城市或區域名稱是什麼?
[Unknown]: jn
您所在的州或省份名稱是什麼?
[Unknown]: sd
該機關的兩字母國家代碼是什麼
[Unknown]: cn
CN=test, OU=work, O=china, L=jn, ST=sd, C=cn 正确嗎?
[否]: y
輸入<mykey>的主密碼
(如果和 keystore 密碼相同,按回車):
在C:\Documents and Settings\new下可以找到一個檔案:server.keystore,其中就包含了自簽名的證書。
注意:
這裡要求certificate keystore 和certificate的密碼一緻,此為Tomcat的限制。
Step2,在tomcat安裝目錄下建立目錄keystore,并拷貝server.keystore到其目錄下。
(如我的tomcat安裝目錄C:\Program Files\Apache Software Foundation\Tomcat 6.0)
Step3,修tomcat安裝目錄下/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"/>
注意:
在原有的server.xml中有<connector></connector>标記對,但是注釋了的,記的去掉注釋
keystoreFile指向檔案%TOMCAT_HOME%/keystore/server.keystore檔案。
keystorePass就是剛才生成certificate keystore的密碼。
Step4,測試Https。通路https://localhost:8443/,提示有不安全的證書,接受證書,看到可親的tom貓。
延伸
某些情況下,某些特定資源需要走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-data-constraint>
<transport-guarantee>
CONFIDENTIAL
</transport-guarantee>
</user-data-constraint>
</security-constraint>
這樣當使用如下請求通路登入頁面時,則伺服器将該請求建立在https連接配接上。