天天看點

采用SSL實作加密傳輸〔轉〕

轉自李天平作品:http://book.51cto.com/art/200906/129770.htm

7.9.2  采用SSL實作加密傳輸(1)

在預設情況下,IIS使用HTTP協定以明文形式傳輸資料,Web Service就是使用HTTP協定進行資料傳輸的。Web Service傳輸的資料是XML格式的明文。沒有采取任何加密措施,使用者的重要資料很容易被竊取,如何才能保護網絡中傳遞的這些重要資料呢?

SSL(Security Socket Layer)的中文全稱是加密套接字協定層,它位于HTTP協定層和TCP協定層之間,用于建立使用者與伺服器之間的加密通信,確定所傳遞資訊的安全性,同時SSL安全機制是依靠數字證書來實作的。

SSL基于公用密鑰和私人密鑰,使用者使用公用密鑰來加密資料,但解密資料必須使用相應的私人密鑰。使用SSL安全機制的通信過程如下:使用者與IIS伺服器建立連接配接後,伺服器會把數字證書與公用密鑰發送給使用者,使用者端生成會話密鑰,并用公共密鑰對會話密鑰進行加密,然後傳遞給伺服器,伺服器端用私人密鑰進行解密,這樣,使用者端和伺服器端就建立了一條安全通道,隻有SSL允許的使用者才能與IIS伺服器進行通信。

注  意 SSL網站不同于一般的Web站點,它使用的是"HTTPS"協定,而不是普通的"HTTP"協定。是以它的URL(統一資源定位器)格式為"https://網站域名"。

下面講解如何使用SSL來增強IIS伺服器和Web Service的通信安全。

實作步驟如下。

1.為伺服器安裝證書服務

要想使用SSL安全機制功能,首先必須為Windows Server 2003系統安裝證書服務。進入"控制台",運作"添加或删除程式",接着進入"Windows元件向導"對話框,如圖7-13所示。

采用SSL實作加密傳輸〔轉〕
圖7-13  Windows元件向導

勾選"證書服務"選項,單擊"下一步"按鈕。

接着選擇CA類型。這裡選擇"獨立根CA"選項,如圖7-14所示。單擊"下一步"按鈕,為自己的CA伺服器起名,并設定證書的有效期限,如圖7-15所示。

采用SSL實作加密傳輸〔轉〕
圖7-14  選擇CA類型
采用SSL實作加密傳輸〔轉〕
圖7-15  設定CA資訊

最後指定證書資料庫和證書資料庫日志的位置,如圖7-16所示,單擊"下一步"按鈕。

采用SSL實作加密傳輸〔轉〕
圖7-16  指定證書資料庫

因為需要複制系統檔案,是以需要插入Windows的安裝CD光牒,如圖7-17所示。安裝證書服務需要停止目前的IIS運作,是以要單擊"是"按鈕。

采用SSL實作加密傳輸〔轉〕
圖7-17  複制系統檔案

最後,顯示完成了證書服務的安裝,單擊"完成"按鈕,如圖7-18所示。

采用SSL實作加密傳輸〔轉〕
圖7-18  安裝完成

7.9.2  采用SSL實作加密傳輸(2)

2.配置SSL網站

1)建立請求證書檔案

要想讓Web Service使用SSL安全機制,首先需将Web Service配置為網站。然後為該網站建立請求證書檔案。

依次單擊"控制台"→"管理工具"按鈕,運作"Internet 資訊服務(IIS)管理器",在管理器視窗中展開"網站"目錄,用滑鼠右鍵單擊要使用SSL的Web Service網站,在彈出的快捷菜單中選擇"屬性"指令,在網站屬性對話框中切換到"目錄安全性"頁籤,如圖7-19所示,

采用SSL實作加密傳輸〔轉〕
圖7-19  網站屬性

然後單擊"伺服器證書"按鈕,彈出"IIS證書向導"對話框。

在"IIS證書向導"對話框中選擇"建立證書"選項,單擊"下一步"按鈕,如圖7-20所示。

采用SSL實作加密傳輸〔轉〕
圖7-20  伺服器證書

選擇"現在準備證書請求,但稍後發送"選項。單擊"下一步"按鈕,如圖7-21所示。

采用SSL實作加密傳輸〔轉〕
圖7-21  證書向導

在"名稱"輸入框中為該證書取名,然後在"位長"下拉清單中選擇密鑰的位長(預設為1024,長度越長保密性越好,但性能會越差)。單擊"下一步"按鈕,如圖7-22所示。

采用SSL實作加密傳輸〔轉〕
圖7-22  設定證書名稱

設定機關資訊,如圖7-23所示,然後單擊"下一步"按鈕。設定公共名稱,如圖7-24所示。

采用SSL實作加密傳輸〔轉〕
圖7-23  設定機關資訊
采用SSL實作加密傳輸〔轉〕
圖7-24  設定公共名稱

注  意 公共名稱必須輸入為通路站點的域名,例如要想用位址https://www.maticsoft.com通路Web Service,則此處必須填寫為"www.maticsoft.com",否則将提示使用了不安全的證書,導緻站點無法通路。并且切記,www.maticsoft.com和www.maticsoft.com:8001 帶端口的通路也是不同的,如果設定的是www.maticsoft.com,則網站設定為www.maticsoft.com:8001來通路也是無法使用的。

然後,單擊"下一步"按鈕,設定國家地區,如圖7-25所示。

采用SSL實作加密傳輸〔轉〕
圖7-25  設定國家地區

設定證書的機關、部門、站點公用名稱和地理資訊,一路單擊"下一步"按鈕。

最後指定請求證書檔案的儲存位置。這樣就完成了請求證書檔案的建立。

7.9.2  采用SSL實作加密傳輸(3)

2)申請伺服器證書

完成上述設定後,還要把建立的請求證書檔案送出給證書伺服器。

在伺服器端的IE浏覽器位址欄中輸入"http://localhost/CertSrv/default.asp"。

在"Microsoft  證書服務"歡迎視窗中單擊"申請一個證書"連結,如圖7-26所示。

接下來在證書申請類型中單擊"進階證書申請"連結,如圖7-27所示。

采用SSL實作加密傳輸〔轉〕
圖7-26  申請證書
采用SSL實作加密傳輸〔轉〕
圖7-27  選擇證書類型

然後在進階證書申請視窗中單擊"使用base64編碼的CMC或PKCS#10……"連結,如圖7-28所示。

采用SSL實作加密傳輸〔轉〕
圖7-28  選擇編碼

接下來在新打開的視窗中,打開剛剛生成的"certreq.txt"檔案,将其中的内容複制到"儲存的申請"中,如圖7-29所示。

采用SSL實作加密傳輸〔轉〕
圖7-29  送出證書申請

單擊"送出"按鈕,顯示"證書挂起"頁面,如圖7-30所示。

采用SSL實作加密傳輸〔轉〕
圖7-30  證書挂起

7.9.2  采用SSL實作加密傳輸(4)

3)頒發伺服器證書

送出證書申請以後,還需要頒發伺服器證書。依次選擇"開始"→"設定"→"控制台",輕按兩下"管理工具",再輕按兩下"證書頒發機構",在打開的對話框中選擇"挂起的申請"選項,如圖7-31所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-31  挂起的申請

找到剛才申請的證書,然後用滑鼠右鍵單擊該項,在彈出的快捷菜單中選擇"所有任務"→"頒發"指令,如圖7-32所示。

頒發成功後,選擇"頒發的證書"選項,輕按兩下剛才頒發的證書,在彈出的"證書"對話框中的"詳細資訊"标簽頁中,單擊"複制到檔案"按鈕,如圖7-33所示。

采用SSL實作加密傳輸〔轉〕
圖7-32  頒發證書
采用SSL實作加密傳輸〔轉〕
圖7-33  複制到檔案

彈出"證書導出向導"對話框,連續單擊"下一步"按鈕,選擇"Base64編碼X.509"選項,如圖7-34所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-34  選擇導出檔案格式

單擊"下一步"按鈕,并在"要導出的檔案"對話框中指定檔案名,最後單擊"完成"按鈕。

4)安裝Web伺服器證書

重新進入IIS管理器的"目錄安全性"标簽頁,單擊"伺服器證書"按鈕,彈出"挂起的證書請求"對話框,選擇"處理挂起的請求并安裝證書"選項,單擊"下一步"按鈕,如圖7-35所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-35  處理挂起的證書

指定剛才導出的伺服器證書檔案的位置,如圖7-36所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-36  選擇導出位置

接着設定SSL端口,使用預設的"443"即可,最後單擊"完成"按鈕。

7.9.2  采用SSL實作加密傳輸(5)

5)配置網站啟用SSL通道

在網站屬性"目錄安全性"标簽頁中單擊安全通信欄的"編輯"按鈕,然後,勾選"要求安全通道(SSL)"選項,如圖7-37所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-37  啟用網站SSL通道

忽略用戶端證書:選擇該選項可以允許使用者不必提供用戶端證書就可通路該站點。

接受用戶端證書:選擇該選項可以允許具有用戶端證書的使用者進行通路,證書不是必需的。具有用戶端證書的使用者可以被映射;沒有用戶端證書的使用者可以使用其他身份驗證方法。

要求用戶端證書:選擇該選項則僅允許具有有效用戶端證書的使用者進行連接配接。沒有有效用戶端證書的使用者被拒絕通路該站點。選擇該選項進而在要求用戶端證書前,必須選擇"要求安全通道(SSL)"選項。

最後單擊"确定"按鈕,即完成啟用SSL了。在完成了對SSL網站的配置後,使用者隻要在IE浏覽器中輸入"https://網站域名"就能通路該網站。

注  意 

勾選上SSL後,必須用HTTPS來通路,而通路網站的端口也會使用SSL端口,預設為443。

如果在你通路站點的過程中出現無法正常通路的情況,那麼請檢查伺服器防火牆是否禁止對SSl端口443的通路,這點比較容易被忽視,當然你也可以自己修改端口。

如果還是不能通路,出現提示"你試圖從目錄中執行 CGI、ISAPI 或其他可執行程式,但該目錄不允許執行程式。HTTP錯誤403.1-禁止通路:執行通路被拒絕。"那麼請檢查網站主目錄的執行權限,将執行權限設定為純腳本即可,如圖7-38所示。

采用SSL實作加密傳輸〔轉〕
圖7-38  設定執行權限

6)用戶端安裝證書

如果IIS伺服器設定了"要求用戶端證書",則其他機器或使用者想通過HTTPS通路和調用該Web服務,就需要将CA的根證書導入到用戶端證書的可信任機構中,用戶端才可以正常通路Web服務。

(1)選擇"開始"→"運作"指令,在彈出的對話框中輸入"mmc",出現如圖7-39所示的界面。

采用SSL實作加密傳輸〔轉〕
圖7-39  啟動控制台

(2)選擇"檔案"→"添加/删除管理單元"指令,出現如圖7-40所示的界面。

采用SSL實作加密傳輸〔轉〕
圖7-40  添加/删除管理單元

(3)單擊"添加"按鈕,在可用獨立管理單元清單中選擇"證書"選項,出現如圖7-41所示的界面。

(4)選擇"計算機賬戶"選項,單擊"下一步"按鈕,選擇"本地計算機"選項,然後依次單擊"完成"→"關閉"→"确定"按鈕。

采用SSL實作加密傳輸〔轉〕
圖7-41  添加證書管理單元

進入目前使用者的證書管理單元,界面如圖7-42所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-42  選擇證書導入位置

選中"個人"下的"證書節點"選項,單擊滑鼠右鍵,在彈出的快捷菜單中選擇"所有任務"→"導入"指令,如圖7-43所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-43  導入證書

選擇我們剛才頒發的伺服器證書cert.cer,将其導入到個人的存儲位置,導入後如圖7-44所示。

采用SSL實作加密傳輸〔轉〕
(點選檢視大圖)圖7-44  導入到證書

7)SSL的優點與缺點

優點:它對Web服務提供的資料完整性沒有任何影響,當值傳回給客戶時,值還是保持原樣,并沒有因在傳輸過程中使用了加密技術而發生變化。

缺點:它對站點的整體性能有影響,因為它需要進行很多加解密的資料處理。

轉載于:https://www.cnblogs.com/291099657/archive/2009/09/29/1576071.html