什麼是 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