備忘:啓用 Tomcat 下的 HTTPS

首先說明,本文內容在 GOOGLE 上能搜到,所以是原創但不是首創。在此記錄,僅供備忘。

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

重要提示:兩種容易出錯的情況
1、keystore的密碼與tomcat的主密碼不一致;在接下來的步驟中,請把這兩個密碼輸入成相同的;
2、用來生成keystore的java版本與運行tomcat的java版本不一致;運行下面的命令之前,先檢查一下。
wakan@wakan:~/tomcat2/bin>which java
/home/jdk150/bin/java
在啓動tomcat時,看看所用的JAVA_HOME是不是上面的
/home/jdk150,如果不是,請修改用戶的profile文件,或者修改tomcat的啓動文件。
最簡單的做法是在/etc/profile文件中加入下面幾行,然後重新登錄,再進行後續操作:
JAVA_HOME=
/home/jdk150
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

一、生成 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 正確嗎?
  [否]:  是

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

特別說明:上邊輸入的“<tomcat>的主密碼”,與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 -->
    <Connector port="8443" maxHttpHeaderSize="8192"
               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

這一步比較簡單,就不多說了。啓動完成後,在瀏覽器中輸入:[url]https://localhost:8443[/url],即可看到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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章