廣告聯播

2009年2月25日 星期三

[JBoss] JBoss 建立 SSL 以便使用 HTTPS 登入

From: Polin Wei

什麼是 SSL ? 它就是 Secure Socket Layer 的縮寫 , 它是一種架構於 TCP 之上的安全通訊協定 , 它可以有效地協助 Internet 應用軟體提升通訊時的資料完整性以及安全性。

SSL ( Secure Socket Layer )是業界採用的加密通訊協定標準,可以安全地透過網路,傳輸使用者的個人或信用卡等資料,博客來也是使用此種技術,保障會員資料的安全。通常,必須使用 SSL 連接的網頁,其網址的開頭應該會是「https:」,而不是「http:」。因此只要在瀏覽器的網址欄看見開頭為「https:」時,就表示你目前是透過 SSL 連線。

那在 JBoss 如何建立呢? 作法如下:

開發環境:
作業系統 :windowsXP
JBoss : JBoss-4.0.3SP1
JDK: 1.6.x

Step 01: 生成KeyStore
在cmd執行keytool -genkey -alias tomcat -keyalg RSA -keystore chap8.keystore
PS: -validity 3650 這個參數可以讓憑證的有效期變延長, 以這個參數為例, 為 10 年

D:\>keytool -genkey -alias tomcat -keyalg RSA -keystore chap8.keystore
輸入 keystore 密碼:  12345
您的名字與姓氏為何?
  [Unknown]:  polin
您的編制單位名稱為何?
  [Unknown]:  wei
您的組織名稱為何?
  [Unknown]:  polinwei
您所在的城市或地區名稱為何?
  [Unknown]:  taichung
您所在的州及省份名稱為何?
  [Unknown]:  taichung
該單位的二字國碼為何
  [Unknown]:  tw
CN=polin, OU=wei, O=polinwei, L=taichung, ST=taichung, C=tw 正確嗎?
  [否]:  y
輸入 <tomcat> 的主密碼(RETURN 如果和 keystore 密碼相同):
說明:輸入的密碼不要帶特殊字元,否則在運行JBoss時可能會出錯。


Step02:
將產生的chap8.keystore放到 $JBOSS_HOME\server\default\conf下

Step03:
修改 $JBOSS_HOME\server\default\deploy\jbossweb-tomcat55.sar\server.xml
<!-- SSL/TLS Connector configuration using the admin devl guide keystore
      <Connector port="8443" address="${jboss.bind.address}"
           maxThreads="100" strategy="ms" maxHttpHeaderSize="8192"
           emptySessionPath="true"
           scheme="https" secure="true" clientAuth="false"
           keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
           keystorePass="rmi+ssl" sslProtocol = "TLS" />
      -->
上面的<!-- -->  移除, 並修改紅色部份
      <Connector URIEncoding="UTF-8" port="443" address="${jboss.bind.address}"
           maxThreads="100" strategy="ms" maxHttpHeaderSize="8192"
           emptySessionPath="true"
           scheme="https" secure="true" clientAuth="false"
           keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
           keystorePass="12345" sslProtocol = "TLS" />


Step04:
重新啟動Jboss,在流覽器位址欄中分別輸入http://localhost:8080,https://localhost:443 能夠正常訪問,再輸入https://localhost/也能正常流覽

參考文獻: JBoss Web - SSL Configuration HOW-TO

沒有留言:

張貼留言