iis7.0如何配置https与ssl安全类型网站
在IIS 7.0 和IIS 6.0中配置SSL的高級別步驟基本相同:
·獲取合適的證書
·在網站創建HTTPS連接
·通過向該網站發送請求來進行測試
·選擇性地配置SSL選項,例如將SSL作為必要條件
本文提供了一些有用的信息,以及如何利用不同的方式啟用SSL:
·使用IIS管理器用戶界面(GUI)
·使用appcmd命令行工具
·通過Microsoft.Web.Administration進行編程
·利用WMI腳本
SSL配置
從IIS 6.0到IIS 7.0,SSL的安裝部署也有所改變,在Windows Server 2003中,所有的SSL配置都存儲在IIS元數據庫中,并且加密/解密過程都發生在用戶模式(需要大量的內核模式/用戶模式間的轉換),在 Windows Vista 和Windows Server? 2008中,HTTP.sys處理內核模式的SSL加密/解密過程,為安全連接提供了更好的性能。
將SSL轉移到內核模式需要將SSL連接存儲在兩個地方,首先,該連接需要被存儲在網站的如下位置: %windir%\system32\inetsrv\applicationHost.config ,當網站啟動時,IIS 7.0會將連接發送到HTTP.sys,然后HTTP.sys開始接收制定IP:Port的請求(對所有連接有效)。其次,與該連接相關的SSL配置被存儲在HTTP.sys配置中,使用netsh來查看存儲在HTTP.sys中的SSL配置:
netsh http show sslcert
當客戶端連接并啟動一個SSL調動時,HTTP.sys會查看其SSL配置中該客戶端連接到的IP:Port對的信息,HTTP.sys的SSL配置必須保護一個證書和證書存儲位置的名稱,以完成SSL調動。
疑難解答:如果SSL連接遇到困難,應當確認該連接是在applicationHost.config中配置的,并確保HTTP.sys 存儲中包含有效的證書以及存儲名稱。
選擇證書
你希望最終用戶能夠通過證書來驗證服務器的身份嗎?如果是的話,可以創建一個證書請求,然后將證書請求發送至已知的CA(如VeriSign或者GeoTrust),或者在企業內部網域的CA處獲取證書,瀏覽器通常會檢查服務器證書的三個問題:
1. 證書日期是有效的
2. 證書的“公用名稱(CN)”與請求中的主機名稱相匹配,例如,如果某客戶端向如下網址發送請求: http://www.contoso.com/,,那么CN也必須是http://www.contoso.com/
3. 證書發布方是知名的可信賴的CA
如果這三項檢查失敗時,瀏覽器會向用戶發出警告。如果互聯網網站或者內部局域網中存在不熟悉的最終用戶,最好始終確保執行以上三個參數的檢查。
自簽名證書是指計算機自己發布的證書,這種證書適用于最終用戶不需要信任服務器的環境中,例如測試環境等。
AppCmd
你不能使用appcmd發送請求或者創建證書,同樣也不能創建SSL連接。
配置SSL設置
你可以使用appcmd配置網站只能進行服務器https連接,只需通過修改訪問設置中的sslFlags屬性即可。例如,在 applicationHost.config(即:–commitPath:APPHOST)中為“Default Web Site”配置設置:
D:\Windows\system32\inetsrv>appcmd set config "Default Web Site"-commitPath:APPHOST -section:access -sslFlags:Ssl
Applied configuration changes to section "system.webServer/security/access" for
"MACHINE/WEBROOT/APPHOST/Default Web Site" at configuration commit path "MACHINE
/WEBROOT/APPHOST"
如果需要128位的SSL,將sslFlags值改為Ssl128
下面的示例展示的是查看Default Web Site 的區域設置,sslFlags屬性已經設置成功:
D:\Windows\system32\inetsrv>appcmd list config "Default Web Site"-section:access
其結果是:
<system.webServer> <security> <access flags="Script, Read" sslFlags="Ssl" /> </security> </system.webServer>
WMI
你不能使用WebAdministration WMI命名控件發送請求或者創建證書
創建SSL連接
該腳本顯示了如何創建新HTTPS連接以及為HTTP.sys和IIS 7.0添加合適的配置:
Set oIIS = GetObject("winmgmts:root\WebAdministration") ''''''''''''''''''''''''''''''''''''''''''''' ' CREATE SSL BINDING ''''''''''''''''''''''''''''''''''''''''''''' oIIS.Get("SSLBinding").Create _ "*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY" ''''''''''''''''''''''''''''''''''''''''''''' ' ADD SSL BINDING TO SITE ''''''''''''''''''''''''''''''''''''''''''''' Set oBinding = oIIS.Get("BindingElement").SpawnInstance_ oBinding.BindingInformation = "*:443:" oBinding.Protocol = "https" Set oSite = oIIS.Get("Site.Name='Default Web Site'") arrBindings = oSite.Bindings ReDim Preserve arrBindings(UBound(arrBindings) + 1) Set arrBindings(UBound(arrBindings)) = oBinding oSite.Bindings = arrBindings Set oPath = oSite.Put_
注意:證書信號和存儲位置必須涉及服務器上一個真正的有效的證書,如果證書信號和/或存儲名稱是假的,腳本將會出現錯誤。
配置SSL 設置
以下腳本顯示了如何通過IIS 7.0 WMI提供程序設置SSL:IIS管理器
獲取證書
在樹型結構中選擇服務器節點,雙擊服務器列表中的證書(Server Certificates)功能:
在操作窗口單擊創建自簽名證書(Create Self-Signed Certificate... )
輸入新證書的友好名稱,然后單擊確定
現在有一個自簽名證書了,并且證書被標示為“服務器驗證”使用,即使用服務器端證書進行HTTP SSL加密以及驗證服務器的身份。
創建SSL連接
在樹型結構中選擇一個站點并點擊操作窗口的Bindings... ,隨后將彈出編輯器,可以創建、編輯和刪除網站的連接,點擊添加(Add...)按鈕來為網站添加新的SSL連接。
新連接默認到端口80的http,在類型的下拉框中選擇https,從SSL Certificate的下拉框中選擇早前創建的自簽名證書,然后點擊確定。
現在網站有一個新的SSL連接,接下來就需要驗證其可行性了。
驗證SSL連接
查找網站的操作窗口中的鏈接,該鏈接能夠利用新的HTTPS連接瀏覽網站,點擊此鏈接能夠測試你的新連接。
IE7將會向你展示一個錯誤頁面,因為自簽名證書是由你自己的計算機簽發的證書,不是可信賴的第三方證書頒發機構(CA),如果你將該證書添加到本地計算機的證書存儲位置或者組策略的Trusted Root Certification Authorities 中,則IE7將會信任該證書,然后點擊Continue to this website (not recommended)。
配置 SSL設置
如果你想要網站能夠請求SSL或者與客戶端證書以特定方式交互通信,則可以配置SSL設置,點擊樹型結構中的網站節點以回到網站主頁,雙擊中間窗格中的SSL Settings功能。
總結
本文中我們探討了如何使用命令行工具AppCmd.exe、Scripting provider WMI以及IIS管理器來在 IIS 7.0上安裝SSL。
總結
以上是生活随笔為你收集整理的iis7.0如何配置https与ssl安全类型网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 下串口调试工具
- 下一篇: terraform 常用命令