備忘:啟用 Tomcat 下的 HTTPS

tbase發表於2007-04-02
首先說明,本文內容在 GOOGLE 上能搜到,所以是原創但不是首創。在此記錄,僅供備忘。

今天做了個實驗,在 Tomcat 5.5 中啟用 HTTPS 的連線。以前都是透過 APACHE 來做的,這回圖省事,直接用 TOMCAT 了,沒想到還挺麻煩。

一、生成 KeyStore

這一步比較簡單,利用 JDK 自帶的 keytool 即可完成。命令如下:

wakan@wakan:~/tomcat2/bin> keytool -genkey -alias tomcat -keyalg RSA
輸入keystore密碼: ************
您的名字與姓氏是什麼?
[Unknown]: Wakan.Jiang
您的組織單位名稱是什麼?
[Unknown]: ZZNode
您的組織名稱是什麼?
[Unknown]: ZZNode
您所在的城市或區域名稱是什麼?
[Unknown]: BeiJing
您所在的州或省份名稱是什麼?
[Unknown]: BeiJing
該單位的兩字母國家程式碼是什麼
[Unknown]: CN
CN=Wakan.Jiang, OU=ZZNode, O=ZZNode, L=BeiJing, ST=BeiJing, C=CN 正確嗎?
[否]: 是

輸入的主密碼
(如果和 keystore 密碼相同,按回車):

特別說明:上邊輸入的“的主密碼”,與keystore密碼一定要相同,否則TOMCAT起不來。至少我試了幾次都不行。報錯如下:
2007-3-26 17:07:01 org.apache.coyote.http11.Http11BaseProtocol init
嚴重: Error initializing endpoint
java.io.IOException: Cannot recover key
at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.init(JSSE14Socket Factory.java:125)

二、修改 server.xml

在 TOMCAT/conf/server.xml 中,修改與 SSL 相關的那一段,我改成下面這樣:
<!-- Define a SSL HTTP/1.1 Connector on port 8443 --&gt

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true" keystorePass="******"
clientAuth="false" sslProtocol="TLS" />

這裡要指定keystorePass,如果寫錯了,會出現下邊的錯誤:
嚴重: Error initializing endpoint
java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:768)

三、啟動 Tomcat

這一步比較簡單,就不多說了。啟動完成後,在瀏覽器中輸入:,即可看到TOMCAT的主頁面。

wakan@wakan:~/tomcat2/bin> ./startup.sh
Using CATALINA_BASE: /home/wakan/tomcat2
Using CATALINA_HOME: /home/wakan/tomcat2
Using CATALINA_TMPDIR: /home/wakan/tomcat2/temp
Using JRE_HOME: /home/jdk150/jre
2007-3-26 17:09:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/249132/viewspace-908360/,如需轉載,請註明出處,否則將追究法律責任。

相關文章