互聯網充滿了危險,而很多重要的應用卻建立在互聯網之上。你一定不會希望你的銀行帳戶密碼被網上的嗅探者截獲,而避免這類問題的一個重要方法就是對網絡傳輸進行加密。在眾多的加密方式中,SSL加密方式是一種工業標准的非常成熟的方法。眾多電子商務與電子支付站點都廣泛使用了這種技術。在以後的幾篇文章裡,我們將分別介紹在windows平台與linux平台下如果實現SSL對WEB服務器傳輸進行加密。最後會介紹一些關於SSL加密原理的問題。本文,我們先介紹一下如果在windows的IIS平台下實現SSL保護的方法。
筆者以Windows Server 2003(簡稱Windows 2003)系統為例,介紹如何在IIS6服務器中應用SSL安全加密機制功能。
生成證書請求文件
要想為某個IIS網站創建數字證書,首先必須使用“Web服務器證書向導” 功能為該網站生成一個證書請求文件。進入“控制面板→管理工具→Internet 信息服務(IIS)管理器”,在IIS管理器窗口中展開“網站”目錄,右鍵點擊要使用SSL安全加密機制功能的網站,在彈出菜單中選擇“屬性”,然後切換到“目錄安全性”標簽頁(如圖),接著點擊“服務器證書”按鈕。在“IIS證書向導”窗口中選擇“新建證書”選項,點擊“下一步”,選中“現在准備證書請求,但稍後發送”,接著在“名稱”欄中為該證書起個名字,在“位長”下拉列表中選擇“密鑰的位長”,這裡要注意,位長不能設置的過大,否則會影響通信質量;接著設置證書的單位、部門、和地理信息,在站點“公用名稱欄”中輸入該網站的域名,然後指定證書請求文件的保存位置,這裡筆者將該證書請求文本文件保存在“d:\certreq.txt”。這樣就完成了證書請求文件的生成。
IIS站點目錄的安全性屬性頁
申請IIS網站證書
完成了證書請求文件的生成後,就可以開始申請IIS網站證書了。但這個過程需要證書服務(Certificate Services)的支持。Windows 2003系統默認狀態沒安裝此服務,需要手工添加。
安裝證書服務
在“控制面板”中運行“添加或刪除程序”,切換到“添加/刪除Windows組件”頁,在“Windows組件向導”對話框中,選中“證書服務”選項,接下來選擇CA類型,這裡筆者選擇“獨立根CA”,然後為該CA服務器起個名字,設置證書的有效期限,建議使用默認值“5年”即可,最後指定證書數據庫和證書數據庫日志的位置後,就完成了證書服務的安裝。
安裝證書服務
完成了證書服務的安裝後,就能開始申請IIS網站證書了。運行 Internet Explorer浏覽器,在地址欄中輸入“http://localhost/CertSrv/default.asp”。接著在“Microsoft 證書服務”歡迎窗口中點擊“申請一個證書”鏈接,然後在證書申請類型中點擊“高級證書申請”鏈接,在高級證書申請窗口中點擊“使用BASE64編碼的 CMC或PKCS#10文件提交….”鏈接,接著將證書請求文件的內容復制到“保存的申請”輸入框中,這裡筆者的證書請求文件內容保存在“d:\ certreq.txt”,最後點擊“提交”按鈕。//本文來自電腦軟硬件應用網www.45it.com
申請證書頁面
提交申請頁面
頒發IIS網站證書
雖然完成了IIS網站證書的申請後,但這時它還處於掛起狀態,需要頒發後才能生效。在“控制面板→管理工具”中,運行“證書頒發機構”程序。在“證書頒發機構”左側窗口中展開目錄,選中“掛起的申請”目錄,在右側窗口找到剛才申請的證書,鼠標右鍵點擊該證書,選擇“所有任務→頒發”。
頒發證書
接著點擊 “頒發的證書”目錄,打開剛剛頒發成功的證書,在 “證書”對話框中切換到“詳細信息”標簽頁。點擊“復制到文件”按鈕,彈出證書導出對話框,一路下一步,在“要導出的文件”欄中指定文件名,這裡筆者保存證書路徑為“d:\cce.cer”,最後點擊“完成”。
導入IIS網站證書
在IIS管理器的“目錄安全性”標簽頁中,點擊“服務器證書”按鈕,這時彈出“掛起的證書請求”對話框,選擇“處理掛起的請求並安裝證書”選項,點擊“下一步”後,指定好剛才導出的IIS 網站證書文件的位置,接著指定SSL使用的端口,建議使用默認的“443”,最後點擊“完成”按鈕.
配置IIS服務器
完成了證書的導入後,IIS網站這時還沒有啟用SSL安全加密功能,需要對IIS服務器進行配置。
選擇需要加密訪問的站點目錄(如果希望全站加密,可以選擇整個站點),右鍵單擊打開屬性頁,在“目錄安全性”標簽頁,點擊安全通信欄的“編輯”按鈕,選中“要求安全通道(SSL)”和“要求128位加密”選項,最後點擊“確定”按鈕即可。如果需要用戶證書認證等高級功能,也可以選擇要示客戶證書選擇,還可以把特定證書映射為windows用戶帳戶。
設置目錄的加密屬性
關於SSL安全加密機制
SSL(Security Socket Layer)的中文全稱是“加密套接字協議層”,是由Netscape公司推出的一種安全通信協議,它位於HTTP協議層和TCP協議層之間,能夠對信用卡和個人信息提供較強的保護。SSL在客戶和服務器之間建立一條加密通道,確保所傳輸的數據不被非法竊取,SSL安全加密機制功能是依靠使用數字證書來實現的。
應用了SSL加密機制後,IIS服務器的數據通信過程如下:首先客戶端與IIS服務器建立通信連接,接著IIS把數字證書與公用密鑰發給客戶端。然後使用這個公共密鑰對客戶端的會話密鑰進行加密後,傳遞給IIS服務器,服務器端接收後用私人密鑰進行解密,這時就在客戶端和 IIS服務器間創建了一條安全數據通道,只有被IIS服務器允許的客戶才能與它進行通信。