這篇是之前寫的簡易WSIT+Tomcat教學,好處是可以利用WSIT所implement的規格,做到Web Service Security以及Reliable Messaging。
一般WSIT都綁在Glassfish上,NetBeans 6.5後就把Tomcat整合進來,使用者不需要做額外的設定就可以直接透過IDE輕鬆的開發WSIT的Web Service。
需求環境
- NetBeans 6.5
- 6.5已將WSIT成功整合入Tomcat中
- 6.1版並沒有辦法直接使用WSIT+Tomcat
- Apache Tomcat 5.5或以上
- Java版本1.5或以上
- 建議版本 NetBeans 6.5、Tomcat 6.0.18、JDK1.6
Step 1 選取WSIT視窗
- Web Service完成後
- 在NetBeans專案上展開Web Service
- 右鍵點選要使用SSL的Web Service
- 選擇Edit Web Service Attributes
Step 2 勾選Secure Service
- 出現WSIT的屬性視窗
- 勾選Secure Service
- Security Mechanism選取Transport Security(SSL)
- Keystore設定勾取Use Development Defaults
Step 3 編輯web.xml
- Web Pages => WEB-INF => web.xml => Security
- 展開由NetBeans自動產生的SSL設定
- 取消Enable Authenti-cation constraint
- NetBeans預設限制的HTTP Method只有POST
Step 4 增加限制(Optional)
- 點選Secure Area再點選下方的Edit
- 將Selected HTTP Methods改選成All HTTP Methods
- 這樣變完成基本設定,但這HTTPS只針對Web Service本身,若要整個專案皆為HTTPS則需另增加一個URL Pattern為「/*」的限制即可
Step 5 產生憑證用的Key
- 進入cmd模式,輸入keytool -genkey -alias -keypass
- 輸入憑證所需資訊,由於這個憑證是非正式的,所以可以隨意輸入
- 完成後key會產生在C:\Documents and Settings\<你的帳號>
- 檔名為.keystore
Step 6 設定Tomcat
- 將產生的keystore移動到tomcat的目錄下
- 進入tomcat home的conf編輯server.xml
- 將上圖部份的註解拿掉
- 增加keystoreFile欄位指定剛剛產生的keystore位置(這邊為tomcat home的mySrvKeystore檔案)
- 密碼為創key時輸入的密碼
Step 7 執行專案
- 將專案deploy上去後,執行專案
- 發現變成走HTTPS
- 但由於憑證為使用者自行產生,所以是無法信任的憑證
- 點下繼續遊覽此站即可
問題:憑證無法通過驗證以及FQDN?
- 由於SSL的憑證需要通過驗證,而自行產生的keystore並無法通過,所以必須在client端的code跳過憑證檢查
- 同時SSL亦會檢查主機是否符合FQDN (Fully Qualified Domain Name),這部份也要加上code跳過檢查
- 此兩段code皆為暫代方案,正式環境時建議移除這個部份
跳過FQDN檢查
跳過有效憑證檢查
全站熱搜
留言列表