這篇是之前寫的簡易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

 

ss01 

 

 

Step 2 勾選Secure Service

  • 出現WSIT的屬性視窗
  • 勾選Secure Service
  • Security Mechanism選取Transport Security(SSL)
  • Keystore設定勾取Use Development Defaults

 

ss02

 

Step 3 編輯web.xml

  • Web Pages => WEB-INF => web.xml => Security
  • 展開由NetBeans自動產生的SSL設定
  • 取消Enable Authenti-cation constraint
  • NetBeans預設限制的HTTP Method只有POST

 

ss03

 

Step 4 增加限制(Optional)

  • 點選Secure Area再點選下方的Edit
  • 將Selected HTTP Methods改選成All HTTP Methods
  • 這樣變完成基本設定,但這HTTPS只針對Web Service本身,若要整個專案皆為HTTPS則需另增加一個URL Pattern為「/*」的限制即可

 

ss04 

ss05

 

Step 5 產生憑證用的Key

  • 進入cmd模式,輸入keytool -genkey -alias  -keypass
  • 輸入憑證所需資訊,由於這個憑證是非正式的,所以可以隨意輸入
  • 完成後key會產生在C:\Documents and Settings\<你的帳號>
  • 檔名為.keystore

 

ss06

 

Step 6 設定Tomcat

  • 將產生的keystore移動到tomcat的目錄下
  • 進入tomcat home的conf編輯server.xml
  • 將上圖部份的註解拿掉
  • 增加keystoreFile欄位指定剛剛產生的keystore位置(這邊為tomcat home的mySrvKeystore檔案)
  • 密碼為創key時輸入的密碼

 

ss07

 

Step 7 執行專案

  • 將專案deploy上去後,執行專案
  • 發現變成走HTTPS
  • 但由於憑證為使用者自行產生,所以是無法信任的憑證
  • 點下繼續遊覽此站即可

 

ss08

 

問題:憑證無法通過驗證以及FQDN?

  1. 由於SSL的憑證需要通過驗證,而自行產生的keystore並無法通過,所以必須在client端的code跳過憑證檢查
  2. 同時SSL亦會檢查主機是否符合FQDN (Fully Qualified Domain Name),這部份也要加上code跳過檢查
  3. 此兩段code皆為暫代方案,正式環境時建議移除這個部份

 

跳過FQDN檢查

 

跳過有效憑證檢查

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ujchang 的頭像
    ujchang

    浪費時間用 - Sometimes you just need a trashcan

    ujchang 發表在 痞客邦 留言(0) 人氣()