IIS 7.0上用自簽證書來啟用SSL

taogchan發表於2013-12-16
SSL允許瀏覽器與web伺服器在一個安全的通道上交換資訊,以防範竊聽,篡改和訊息偽造。你應該總是在登入頁面(使用者在上面輸入使用者名稱和密碼),以及網站上其他所有安全敏感的網頁上使用SSL,譬如,那些顯示財務或個人資訊的帳號網頁。

 在Windows早期的IIS版本上配置SSL很痛苦,搞清楚如何安裝和管理證書,然後如何將證書與一個網站相關聯,我敢說是大多數web開發人員並不知道怎麼做的事情。

 好訊息是,IIS7.0使配置和啟用SSL成為小菜一碟。IIS7.0現在對建立"自簽證書(SelfSignedCertificates)"也有內建的支援,自簽證書允許你輕鬆地建立測試或個人證書,然後你可以用之來為開發或測試目的對一個網站快速啟用SSL。

 使用IIS7.0的話,你可以在30秒內對一個現有的網站完成啟用SSL。下面的教程示範該怎麼來做。

 第一步:建立一個新網站

 我們先使用新的IIS7.0管理工具建立一個新的網站。這個管理工具是對以前IIS管理工具的完全重寫的結果(是使用WindowsForms全部用託管程式碼寫成的),提供了對web特性更邏輯的組織。它對所有的ASP.NET和IIS設定提供了一個GUI管理體驗:(圖1)

IIS7.0上用自簽證書來啟用SSL


 要在機器上建立一個新的網站,在左手的樹形檢視視窗裡右擊"網站(WebSites)"節點,選擇"新增網站(AddWebSite)"上下文選單選項。輸入適當的細節建立一個新的網站:(圖2)

IIS7.0上用自簽證書來啟用SSL


 WindowsVista上IIS7的一個很棒的特性是,你現在可以在本機上擁有的網站數目不再受限制(早期Windows客戶機上IIS版本只允許一個網站)。早期Windows客戶機IIS版本的10個併發請求的限制在IIS7.0上也不再存在。

 我們完成上面的步驟後,在我們的IISweb伺服器上就有一個嶄新的網站在執行了。

第二步:建立一個新的自簽證書

 在把SSL規則繫結到我們的新網站之前,我們首先需要引入和建立一個安全證書來用於SSL繫結。

 在IIS7.0中,可以這麼來管理證書,點選左手樹形檢視管理器裡的根機器節點(rootmachinenode),然後在右邊的特性視窗裡選擇"伺服器證書(ServerCertificates)"圖案:(圖3)

IIS7.0上用自簽證書來啟用SSL


 這會列出在機器上註冊了的所有證書,並允許你引入或者建立新的證書。

 我也可以去象Verisign這樣的證書機構購買一個證書,然後用這個管理介面來引入。或者,我也可以建立一個"自簽證書",這是個測試證書,我可以在開發期間用來測試我的網站。可以這麼做,在管理工具的右手邊點選"建立自簽證書(CreateSelf-SignedCertificate)"連結:(圖4)

IIS7.0上用自簽證書來啟用SSL


 給證書輸入一個名字(譬如:"test"),點選OK.然後IIS7就會自動為你建立一個自籤加密證書(self-signedcryptocertificate),同時與機器註冊該證書:(圖5)

 

IIS7.0上用自簽證書來啟用SSL


第三步:為我們的網站啟用HTTPS繫結

 要給我們在前面建立的網站啟用SSL,在左手邊的樹形檢視視窗裡選擇網站節點,然後在螢幕右手邊的"操作(actions)"視窗裡點選"繫結(Bindings)"連結:(圖6)

IIS7.0上用自簽證書來啟用SSL


 這會調出一個對話方塊,上面列出了將訪問者(traffic)導向該網站的所有的繫結規則(即,該網站的主機頭(host-header)/IP地址/埠組合):(圖7)

IIS7.0上用自簽證書來啟用SSL


 要給網站啟用SSL,我們要點選"新增(Add)"按鈕。這會調出一個"新增繫結(addbinding)"對話方塊,我們可以用來新增HTTPS協議支援。我們可以從對話方塊上的SSL證書下拉框裡選擇我們先前建立的自簽證書,這麼做表明在SSL上給內容加密時,我們要使用那個證書:(圖8)

IIS7.0上用自簽證書來啟用SSL


 Clickok,andwenowhaveSSLenabledforoursite:點選OK,我們就給我們的網站啟用了SSL:(圖9)

IIS7.0上用自簽證書來啟用SSL


第四步:對我們的網站做測試

 給網站新增一個"default.aspx"網頁,然後在瀏覽器裡輸入https://localhost/default.aspx來試著訪問該頁,注意這裡"https"(而不是"http")的用法,表示你要通過SSL來連線。

 如果你使用IE7,你會看到這個謹防欺詐(anti-phishing)的錯誤資訊:(圖10)

IIS7.0上用自簽證書來啟用SSL


 如果這發生的話,別怕,這只不過是IE想幫你,向你表明你本地機器的自簽證書看上去有點可疑。點選"繼續連線這個網站(Continuetothiswebsite)"連結跳過這個安全警告,繼續連線到該網站上。你會發現你的default.aspx網頁現在是在SSL保護下執行的:(圖11)

IIS7.0上用自簽證書來啟用SSL


 至此,全部完成!

 最後,幾個涉及SSL的注意事項:

 "IIS7.0管理工具有個"SSL設定(SSLSettings)"節點,你可以針對每個網站,目錄或者檔案來做選擇,這允許你控制特定的資源執行時是否需要SSL請求。這對login.aspx這樣的網頁來說很有用,因為你要保證只有在加過密的通道上提交資訊時,使用者才能輸入他們的身份資訊。假如你配置login.asp需要SSL的話,IIS7.0就會堵截瀏覽器的訪問,除非是通過SSL來訪問的。

 "在ASP.NET網頁或處理器(handler)裡,你可以通過檢查Request.IsSecure屬性,用程式設計的手法檢查當前請求是否使用了SSL(假如進來的瀏覽器請求是通過SSL的,該屬性會返回true)。

 "你可以設定web.config檔案中的配置部分的"requireSSL"屬性,要求ASP.NET的表單認證系統確保表單認證cookie只有在啟用了SSL的網頁和URLs上才可以設定和使用。這避免了黑客在不受SSL保護的網頁上試著攔截認證cookie,然後試著從另外的機器上使用"重放攻擊(ReplayAttack)"來冒充使用者的危險。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-1063399/,如需轉載,請註明出處,否則將追究法律責任。

相關文章