用證書實現windows2003下IIS的SSL安全通信
用證書實現windows2003下IIS的用證SSL安全通信
閱讀次數:128 次 來源:admin 發布時間:隨著Windows Server 2003操作系統的推出,Windows平臺的書實安全性和易用性大大增強,然而,現w下在默認情況下,安全IIS使用HTTP協議以明文形式傳輸數據,通信沒有采取任何加密措施,用證用戶的書實重要數據很容易被竊取,如何才能保護局域網中的現w下這些重要數據呢?下面筆者就介紹一下如何使用SSL增強IIS服務器的通信安全。
一、安全什么是通信SSL
SSL(Security Socket Layer)全稱是加密套接字協議層,它位于HTTP協議層和TCP協議層之間,用證用于建立用戶與服務器之間的書實加密通信,確保所傳遞信息的現w下安全性,同時SSL安全機制是安全依靠數字證書來實現的。
SSL基于公用密鑰和私人密鑰,通信用戶使用公用密鑰來加密數據,但解密數據必須使用相應的私人密鑰。使用SSL安全機制的通信過程如下:用戶與IIS服務器建立連接后,服務器會把數字證書與公用密鑰發送給用戶,用戶端生成會話密鑰,并用公共密鑰對會話密鑰進行加密,然后傳遞給服務器,服務器端用私人密鑰進行解密,這樣,用戶端和服務器端就建立了一條安全通道,只有SSL允許的用戶才能與IIS服務器進行通信。
提示:SSL網站不同于一般的Web站點,它使用的是“HTTPS”協議,而不是普通的“HTTP”協議。因此它的URL(統一資源定位器)格式為“https://網站域名”。
二、安裝證書服務
要想使用SSL安全機制功能,首先必須為Windows Server 2003系統安裝證書服務。
進入“控制面板”,運行“添加或刪除程序”,接著進入“Windows組件向導”對話框,勾選“證書服務”選項,點擊“下一步”按鈕,接著選擇CA類型。這里選擇“獨立根CA”,點擊“下一步”按鈕,為自己的CA服務器取個名字,設置證書的有效期限,最后指定證書數據庫和證書數據庫日志的位置,就可完成證書服務的安裝。
三、配置SSL網站
1.創建請求證書文件
完成了證書服務的安裝后,就可以為要使用SSL安全機制的網站創建請求證書文件。點擊“控制面板→管理工具”,運行“Internet 信息服務-IIS 管理器”,在管理器窗口中展開“網站”目錄,右鍵點擊要使用SSL的網站,選擇“屬性”選項,在網站屬性對話框中切換到“目錄安全性”標簽頁(圖1),然后點擊“服務器證書”按鈕。在“IIS證書向導”對話框中選擇“新建證書”,點擊“下一步”按鈕,選擇“現在準備證書請求,但稍后發送”。在“名稱”輸入框中為該證書取名,然后在“位長”下拉列表中選擇密鑰的位長。接著設置證書的單位、部門、站點公用名稱和地理信息,最后指定請求證書文件的保存位置。這樣就完成了請求證書文件的創建。
2.申請服務器證書
完成上述設置后,還要把創建的請求證書文件提交給證書服務器。在服務器端的IE瀏覽器地址欄中輸入“http://localhost/CertSrv/default.asp”。在“Microsoft 證書服務”歡迎窗口中點擊“申請一個證書”鏈接,接下來在證書申請類型中點擊“高級證書申請”鏈接,然后在高級證書申請窗口中點擊“使用BASE64編碼的CMC或PKCS#10....”鏈接,再打開剛剛生成的“certreq.txt”文件,將其中的內容復制到“保存的申請”輸入框后點擊“提交”按鈕即可。
3.頒發服務器證書
點擊“控制面板→管理工具”,運行“證書頒發機構”。在主窗口中展開樹狀目錄,點擊“掛起的申請”項(圖2),找到剛才申請的證書,然后右鍵點擊該項,選擇“所有任務→頒發”。頒發成功后,點擊樹狀目錄中的“頒發的證書”項,雙擊剛才頒發的證書,在彈出的“證書”對話框的“詳細信息”標簽頁中,點擊“復制到文件”按鈕,彈出證書導出向導,連續點擊“下一步”按鈕,并在“要導出的文件”對話框中指定文件名,最后點擊“完成”。
4.安裝服務器證書
重新進入IIS管理器的“目錄安全性”標簽頁,點擊“服務器證書”按鈕,彈出“掛起的證書請求”對話框,選擇“處理掛起的請求并安裝證書”選項,點擊“下一步”按鈕,指定剛才導出的服務器證書文件的位置,接著設置SSL端口,使用默認的“443”即可,最后點擊“完成”按鈕。
在“目錄安全性”標簽頁,點擊安全通信欄的“編輯”按鈕,勾選“要求安全通道(SSL)”選項,最后點擊“確定”按鈕即可啟用SSL。
在完成了對SSL網站的配置后,用戶只要在IE瀏覽器中輸入“https://網站域名”就能訪問該網站
一,服務器上裝有CA(Certificate Server)
1,服務器上安裝CA
Win2000中帶有CA的安裝程序。單擊Start,Control Pannel Add/Remove Programs兵單擊Add/Remove Windows Compenents。當Windows Component Wizard出現時,選擇證書服務(Certificate Services)。下一步中,安裝需要指出服務器授權的類型,一般作為一個獨立的Web服務器,選擇Stand-alone root CA。然后,需要指定共享文件夾,這作為證書服務的配置數據存儲位置,單擊Next,安裝完畢。
注意:自己建立CA 機構時,所給CA機構起的名是自己定義的,在客戶端的IE中,在一開始并不屬于客戶端信任的根證書頒發機構,如果,客戶端沒有把該CA機構加為自己所信任的根證書頒發機構,那么在客戶端訪問該服務器上的網站時,會出現安全警告信息。
2,建立并安裝一個站點證書
步驟如下:
A, 打開IIS,選定要安裝證書的站點,單擊右鍵,選擇彈出菜單中的properties,在彈出的對話框中,單擊directory security屬性頁,單擊Server Certificate按鈕,出現IIS Certificate Wizard對話框,這一步的操作,所完成的功能是生成一個向CA申請數字證書的密鑰文件,文件以.txt的格式存于本機目錄下。
B, 通過Certificate Server Enrollment的頁面訪問注冊控件和它的表格:
在安裝了Certificate Service的機器上可以從位于http://localhost/certsrv 的Certificate Server Administration Tools Web頁面可以訪問該注冊控件。選擇request a certificate 選項,在下一頁面中選擇advance request,這里需要注意的是,如果是給網站申請數字證書時必須選擇該項,因為賦予網站的數字證書需要使用a步驟中所產生的特定的密鑰文件,這樣才能生成屬于該網站的唯一的數字證書。而一般User certificate request 是針對需要訪問該網站的客戶設計的,分別有web browser certificate 和E-Mail Protection certificate 兩種方式。客戶采用web browser certificate方式申請對有SSL保護的網站的訪問,而E-Mail Protection certificate是保護客戶收發email時的信息傳送。接下去頁面的Advanced Certificate Requests 中我們選擇Submit a certificate request using a base64 encoded PKCS #10 file or a renewal request using a base64 encoded PKCS #7 file。因為這種格式和在a步驟中所產生的密鑰文件的加密格式一致。然后,可以通過browse把存在本機上的.txt密鑰文件上載至網頁上,遞出申請。在最后的界面中,會被告知請求已經被接到并正在等待證書授權機構的批準。
C, 微軟的Certificate Service可以使用MMC來管理:
服務器提出的要求數字驗證的請求傳遞到CA機構中,打開Start/Program/Administrative tools/Certification Authority后,可以看到pending request文件夾,這個文件夾包含了所有等待root授權機構批準的證書請求。如果CA認證機構覺得該網站的申請可行,則單擊右鍵選擇issue,這樣,該文件就被移到了issued Certificates,表示申請成功,這個節點包含了所有被證書服務的管理員批準并被發布的證書。反之如果CA機構覺得該申請不可行,則選擇Deny,該文件被轉移到Failed request,表示申請失敗,這個節點包含了所有被拒絕的證書請求。對申請成功并發布的數字證書而言,如果CA機構想取消該證書,可以單擊右鍵選擇revoke,則已申請成功的數字證書被移到revoke certificates文件夾內,這個節點包含了所有被發布但是又被撤銷的證書。
D, 提交數字驗證的網站在等待一定時間后,依然可以通過http://localhost/certsrv來查看自己所申請的數字驗證的進行情況。選擇Check On A Pending Certificate選項并單擊Next 按鈕繼續。從選項框中選擇候選的請求,單擊Next按鈕繼續。為下載該文件選擇Base64 encoding并單擊Download CA Certificate鏈接以開始下載過程。這樣就從證書授權機構接到了服務器證書文件。打開IIS,選定已經得到數字驗證的網站,單擊右鍵后選擇properties,在屬性頁directory security中,單擊Server Certificate 按鈕以啟動Web服務證書向導,選擇Process A Pending Request and Install Certificate選項。選擇上一步驟中download下來的數字證書(即.cer文件)的存放路徑,開始安裝。安裝成功后,directory security屬性頁中的view certificate和edit按鈕由disable變為enable。整個網站的數字驗證過程完畢。
3,關于certificate的屬性設置
點擊directory security屬性頁的edit按鈕,可以進行網站數字驗證屬性的設置。首先,如果選擇了require secure channel(SSL)復選框,則http的形式將無法訪問該站點,只有采用https的方式進行訪問。如果不選擇該項的話,則http和https兩種方式并存,都可以進行對此網站的訪問。如果選擇了該項,則又有三種方式可供選擇,分別是ignore client certificate,accept client certificate 以及require client certificate。Ignore client certificate表示不接受客戶證書(默認):如果客戶瀏覽器安裝了客戶證書,會返回一個Access Denied消息。Accept client certificate表示接受證書:不管客戶是否安裝了客戶證書對服務器沒有區別,訪問在兩種情況下都是允許的。Ignore client certificate表示需要客戶證書:除非客戶有一個被root CA(這里是證書服務器)授予的合法證書,否則訪問被拒絕。客戶要訪問網站,必須得先從服務器得到數字驗證,也即,客戶端必須首先向要訪問的網站提出要求數字驗證的申請,在得到服務器端發回的用于兩者間信息交互的數字證書后,才可以對該網站進行訪問,否則,網站將拒絕該客戶的訪問。
不同的網站可以針對這三個屬性進行不同的設置。
4,客戶端SSL的配置
在瀏覽器和Web站點之間開始SSL通信之前,客戶端必須能夠認出服務器的證書是合法的。要做到這一點,客戶端必須和服務器的證書授權機構取得聯系,在這種情況下是本地的證書服務器。如果沒能實現前面的步驟,直接連到SSL站點,會首先接到安全警告信息。客戶瀏覽器需要在瀏覽器的Trusted Root Store中安裝證書。要安裝證書,在安全警告對話框出現時,單擊View Certificate按鈕,就會出現一個對話框,該對話框中包含了證書的信息。單擊Install Certificate 按鈕以啟動證書導入向導。
對客戶而言,SSL的配置就相對比較簡單,客戶可以選擇申請數字證書,也可以不用,只是,如果客戶所訪問的某個網站設定了require client certificate屬性,則客戶必須在得到了該網站的數字驗證后,才能對此進行訪問,換言之,客戶想得到訪問權,就必須先向網站提出申請。
客戶通過訪問http://servername/certsrv來申請數字驗證,它的操作過程和網站申請數字驗證基本雷同,只是它不是選擇Advance request這一項,而是使用User certificate request 下的web browser certificate選項,只要填寫客戶的一些相應信息后,就能遞出申請,而當CA機構認證后,也是從網上直接下載相對應的數字證書至本機。這樣,每當訪問該網站,當彈出要求客戶端數字驗證的消息框后,客戶選擇已經下載過的數字證書,就可以進行對網站的訪問了。
注意事項:如果網站的端口號不是默認的80,而是自己定義的話,則相應的也要給SSL Port 設定一個端口號,以示區別,而訪問http和https時,所輸入的端口號是不一致的。如果網站使用默認的80端口,則SSL也不需要配置特定的端口號,它的默認端口號為443。
二,服務器和裝有CA(Certificate Server)的計算機獨立
網站申請數字證書的過程和前面部分一樣。只是,上一部分的操作因為CA和服務器設在同一臺機器上,所以,訪問本機的http://localhost/certsrv就可以了,而這一部分,因為CA和服務器的計算機獨立,所以,申請的時候也和客戶端一樣,遠程訪問http://CAname/certsrv ,其中的具體操作和上一部分一樣。只是,在這種情況下,該網站如果設置了require client certificate,則客戶就很難訪問該網站了,因為客戶端無法向該網站發出要求數字驗證的申請。一般而言,最好采用accept client certificate。