2010年12月2日 星期四

Tomcat + SSL

今天介紹安全的tomcat,
因為tomcat是使用java語法,所以需要java的環境,
因為要做的是"安全的"tomcat,所以需要SSL支援。

OS:CentOS 5.5

Requirment:
JDK
tomcat
openssl  openssl-devel

1. 安裝JAVA環境
請至JAVA下載JDK最新程式
chmod  +x  jdk-6u22-linux-i586-rpm.bin
./jdk-6u22-linux-i586-rpm.bin

2. 設定環境變數
vi  /etc/profile
...
JAVA_HOME=/usr/java/jdk1.6.0_22/
export  JAVA_HOME
...
source  /etc/profile
java  -version

3. 安裝Tomcat
wget  http://ftp.asia.edu.tw/ftp/Apache/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz
tar  -zxvf  apache-tomcat-6.0.29.tar.gz
mv  apache-tomcat-6.0.29 /usr/local/

4. 啟動Tomcat,測試
/usr/local/apache-tomcat-6.0.29/bin/startup.sh
開啟瀏覽器  http://your tomcat server:8080/

5. 設定tomcat manager管理者帳號密碼
/usr/local/apache-tomcat-6.0.29/bin/shutdown.sh
vi  tomcat-users.xml
...
<role rolename="manager"/>
<user username="admin" password="iproyaya" roles="manager"/>
</tomcat-users>
/usr/local/apache-tomcat-6.0.29/bin/startup.sh
開啟瀏覽器  http://your tomcat server:8080/manager/html

6. 安裝OpenSSL
yum  install  openssl  openssl-devel

7. 建立Tomcat使用的憑證
/usr/local/apache-tomcat-6.0.29/bin/shutdown.sh
/usr/java/jdk1.6.0_22/bin/keytool  -genkey  -alias  tomcat  -keyalg  RSA
輸入 keystore 密碼:  
重新輸入新密碼: 
您的名字與姓氏為何?
  [Unknown]:localhost  
您的編制單位名稱為何?
  [Unknown]:  
您的組織名稱為何?
  [Unknown]:  
您所在的城市或地區名稱為何?
  [Unknown]:  
您所在的州及省份名稱為何?
  [Unknown]:  
該單位的二字國碼為何
  [Unknown]:  
CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正確嗎?
  [否]:  y
輸入 <tomcat> 的主密碼
(RETURN 如果和 keystore 密碼相同):

8. 開啟Tomcat SSL機制
vi  /usr/local/apache-tomcat-6.0.29/conf/server.xml
...
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
SSLEnabled="true"
keystoreFile="/usr/local/apache-tomcat-5.5.27/conf/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
...

9. 重新啟動Tomcat,驗證
/usr/local/apache-tomcat-6.0.29/bin/startup.sh
netstat  -tnulp  |  grep  8443
開啟瀏覽器  https://your tomcat server:8443/

參考文章:

1 則留言:

  1. keytool產生的.keystore預設會在使用者目錄底下,需搬至conf目錄下

    回覆刪除