首先介紹一下ssl, ssl 的英文全稱是 "secure sockets layer" ,中文名為 "安全套接層協議層 ",它是網景( netscape )公司提出的基于 web 應用的安全協議。ssl協議可分為兩層: ssl記錄協議(ssl record protocol):它建立在可靠的傳輸協議(如tcp)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。ssl是security socket layer的縮寫,技術上稱為安全套接字,可以簡單為加密通訊協議,使用ssl可以對通訊(包括電子郵件)內容進行高強度的加密,以防止黑客監聽您的通訊內容甚至是用戶密碼。
那么在xml web service上使用ssl有何意義呢?xml web service傳輸的數據是xml格式的,xml是一種明文,而傳輸層通過tcp/ip來傳輸,而tcp/ip的傳輸可能被非法監聽,黑客可以輕易的將xml數據解析出來,截獲信息甚至篡改數據,這樣就造成了xml web service在數據傳輸中是很不安全的。利用ssl可以將原本的xml經過高強度的加密,從而有效的防止數據在傳輸過程中被非法截獲和篡改。
下面講下如何在xml web service上使用ssl,使用ssl需要一個數字證書,這個證書您可以通過商業購買也可以使用自己ca產生的證書,只是需要一些額外的工作而已。通常情況下,您的網絡服務用于單位之間的合作接口的話,用自己的ca產生的證書就完全就可以了,但象銀行這樣的金融機構,他們的用戶群比較大,最好還是購買證書。本文只闡述如何使用自己的ca產生ssl證書。
1. 安裝證書頒發機構
windows 2003 標準版和服務器版都是自帶證書頒發機構的組件的,但是默認不安裝,要申請證書,必須安裝證書頒發機構組件,安裝方法:
打開控制面板-添加/刪除程序,選擇添加/刪除windows組件,插入windows的安裝光盤,選擇“證書服務”,然后一路下一步即可。安裝成功之后,便可以進入下一步的申請ssl證書。
2.申請ssl證書
要想為web service設置ssl,必須將web service設置為網站,而不能是虛擬目錄。
首先,打開iis,右鍵單擊web service所在網站 ,點擊目錄安全性,在安全通訊中選擇“服務器證書”,點 擊下一步,選擇”新建證書“,點擊下一步,然后選擇”現在準備證書請求,但稍后發送“,點擊下一步,輸入一個任意的證書名稱,位長選擇默認的1024即可,長度越長保密性越好,但性能越差。單擊下一步,輸入單位和部門,單擊下一步,出現如下界面:
注意:公共名稱必須填寫為訪問站點的域名,如:要想用下面的地址訪問web service,https://192.168.1.179/..,則此處必須填寫"192.168.1.179”,否則將提示使用了不安全的證書,導致站點無法訪問。將此步驟設置好以后,一路next即可。
在ie地址欄上輸入“http://localhost/certsrv/default.asp”,在出現的網頁中,選擇“申請一個證書”,進入到下一個頁面,選擇“高級證書申請”,在下頁中選擇“使用base64編碼的的cmc或pkcs#10文件提交一個證書申請,或使用一個pkcs#7文件續訂一個證書申請”,在下頁中,輸入在上一步中生成文件中base64代碼,保存的屬性可以為空,一路next即可。
接下來需要作的的工作通過證書頒發機構,頒發剛才申請的證書,單擊開始-管理工具-證書頒發機構,選掛起的的申請,在剛才申請的證書上點擊右鍵,選擇頒發,然后選擇頒發的證書,點擊剛才頒發的證書,選擇詳細信息,點擊“復制到文件”,一路next下去就可以了,將證書保存到一個文件中。
接下來,回到iis設置中,在網絡服務的站點上,再次點擊服務器證書,選擇“處理掛起的請求并安裝”證書,選擇剛才導出的證書文件,下一步即可。安裝好證書后,點擊目錄安全性下-安全通訊-編輯,將“要求安全通道(ssl)"勾選上。這樣就完成了ssl設置,注意勾選上ssl后,必須用https來訪問,而訪問網站的端口也會使用ssl端口,默認為443,如果在您訪問站點的過程中出現無法正常訪問的問題,請檢查服務器防火墻是否禁止對ssl端口443的訪問,這點比較容易被忽視。還有一點,因為是自己ca產生的證書,如果要讓其他人能通過https訪問網絡服務,需要作額外的一點工作 ,將ca的根證書導入到客戶端證書的可信任機構中,客戶端就可以正常訪問網絡服務了。
新聞熱點
疑難解答