iis 7 ssl https配置方法

來源:互聯網
上載者:User

iis 7 ssl https教程配置方法
iis6(windows2003)下,ssl的所有配置資訊都儲存在iis中繼資料中,在使用者模式中加密解密(這會耗費很多的核心/使用者模式轉換)。在iis7中,http.sys在核心模式下操作ssl加密解密,相對於iis6,這種方式能提高近20%的效能。
 

當ssl運行於核心模式時,會將ssl綁定資訊儲存在兩個地方。第一個地方,綁定配置儲存在%windir%system32inetsrvconfigapplicationhost.config中,當網站啟動時,iis7發送綁定資訊給http.sys,同時http.sys會在特定的ip和連接埠監聽請求。第二個地方,與綁定相關聯的ssl配置儲存在http.sys配置中。使用netsh命令可以查看儲存在http.sys的ssl綁定配置:

netsh http show sslcert

當一個客戶開始串連並初始化ssl協商時,http.sys在它的配置中尋找這個ip:port對應的ssl配置。這個ssl配置必須包括認證hash值和名稱:

l 在applicationhost.config中確認這個綁定是否存在

l http.sys中是否包含有效認證的hash值以及命名是否存在

選擇認證時,需要考慮以下問題:

是否想讓終端使用者能夠通過你提供的認證確認你伺服器的唯一性?

如果是的,則

要麼建立一個認證請求,並且發送認證請求到認證權威機構(ca),比如verisign或者geotrust;

要麼從intranet的線上ca那裡擷取一個認證

瀏覽器一般用三樣東西來確認伺服器憑證的有效性:

1. 當前日期在認證的有效期間範圍內

2. 認證的“common name”(cn)與請求中的主機名稱相匹配。比如,如果客戶發起了一個到http://www.contoso.com的請求,則cn必須是這樣的:http://www.contoso.com/

3. 認證的發行者是已知的和受到信任的ca

如果其中有1項失敗,瀏覽器就會警告使用者。如果你有個internet網站或者你不怎麼熟的intranet使用者,那你就需要確保這3項是都通過的。
 

自簽名的認證可以用你自己的電腦建立。如果終端使用者不重要,或者他們信任你的伺服器,又或者用於測試環境,則這種自我簽署憑證將會非常有用。

使用wmi來綁定ssl認證

使用wmi命名空間,是不能夠請求或者建立認證。建立ssl綁定

以下指令碼展示了如何建立ssl綁定,以及添加相應資訊到http.sys中:

set oiis = getobject("winmgmts:rootwebadministration")
 ''''''''''''''''''''''''''''''''''''''''''''' ' 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_

注意:認證的hash值和名稱必須引用了你服務其上真實且有用的認證。如果其中有一項虛假,就會出現錯誤。
 

配置ssl設定

以下指令碼展示了如何通過iis7的wmi提供者來設定ssl。

const ssl = 8
set oiis = getobject("winmgmts:rootwebadministration")
set osection = oiis.get( _
   "accesssection.path='machine/webroot/apphost',location='default web site'")
osection.sslflags = osection.sslflags or ssl
osection.put_
 

ø 使用iis管理器來綁定ssl認證

擷取一個認證

在樹目錄中選擇伺服器節點,在右面雙擊server certificates表徵圖:

iis 7 ssl https配置方法
iis6(windows2003)下,ssl的所有配置資訊都儲存在iis中繼資料中,在使用者模式中加密解密(這會耗費很多的核心/使用者模式轉換)。在iis7中,http.sys在核心模式下操作ssl加密解密,相對於iis6,這種方式能提高近20%的效能。
 

當ssl運行於核心模式時,會將ssl綁定資訊儲存在兩個地方。第一個地方,綁定配置儲存在%windir%system32inetsrvconfigapplicationhost.config中,當網站啟動時,iis7發送綁定資訊給http.sys,同時http.sys會在特定的ip和連接埠監聽請求。第二個地方,與綁定相關聯的ssl配置儲存在http.sys配置中。使用netsh命令可以查看儲存在http.sys的ssl綁定配置:

netsh http show sslcert

當一個客戶開始串連並初始化ssl協商時,http.sys在它的配置中尋找這個ip:port對應的ssl配置。這個ssl配置必須包括認證hash值和名稱:

l 在applicationhost.config中確認這個綁定是否存在

l http.sys中是否包含有效認證的hash值以及命名是否存在

選擇認證時,需要考慮以下問題:

是否想讓終端使用者能夠通過你提供的認證確認你伺服器的唯一性?

如果是的,則

要麼建立一個認證請求,並且發送認證請求到認證權威機構(ca),比如verisign或者geotrust;

要麼從intranet的線上ca那裡擷取一個認證

瀏覽器一般用三樣東西來確認伺服器憑證的有效性:

1. 當前日期在認證的有效期間範圍內

2. 認證的“common name”(cn)與請求中的主機名稱相匹配。比如,如果客戶發起了一個到http://www.contoso.com的請求,則cn必須是這樣的:http://www.contoso.com/

3. 認證的發行者是已知的和受到信任的ca

如果其中有1項失敗,瀏覽器就會警告使用者。如果你有個internet網站或者你不怎麼熟的intranet使用者,那你就需要確保這3項是都通過的。
 

自簽名的認證可以用你自己的電腦建立。如果終端使用者不重要,或者他們信任你的伺服器,又或者用於測試環境,則這種自我簽署憑證將會非常有用。

使用wmi來綁定ssl認證

使用wmi命名空間,是不能夠請求或者建立認證。建立ssl綁定

以下指令碼展示了如何建立ssl綁定,以及添加相應資訊到http.sys中:

set oiis = getobject("winmgmts:rootwebadministration")
 ''''''''''''''''''''''''''''''''''''''''''''' ' 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_

注意:認證的hash值和名稱必須引用了你服務其上真實且有用的認證。如果其中有一項虛假,就會出現錯誤。
 

配置ssl設定

以下指令碼展示了如何通過iis7的wmi提供者來設定ssl。

const ssl = 8
set oiis = getobject("winmgmts:rootwebadministration")
set osection = oiis.get( _
   "accesssection.path='machine/webroot/apphost',location='default web site'")
osection.sslflags = osection.sslflags or ssl
osection.put_
 

ø 使用iis管理器來綁定ssl認證

擷取一個認證

在樹目錄中選擇伺服器節點,在右面雙擊server certificates表徵圖:

 

在樹目錄中選擇伺服器節點,在右面雙擊server certificates表徵圖: 單擊create self-signed certificate…按鈕: 輸入新認證的名字後單擊ok。現在你有了一個自我簽署憑證。這個認證被標記為”伺服器端驗證” 建立ssl綁定選擇一個網站,在actions面板中單擊bindings…。會顯示出添加、修改、刪除綁定對話方塊。單擊add…按鈕添加新的ssl綁定。預設設定是80連接埠,在類型下拉框中選擇https,在ssl certificate下拉框中選擇你剛才建立的自我簽署憑證名字,單擊ok。 現在你已經完成ssl綁定的建立工作了,剩下的就是要確認是否工作正常了。  ø  ssl綁定的確認在actions面板中,在browse web site下,單擊剛才增加的綁定  由於這個認證是個自簽名的認證,ie7會顯示一個錯誤頁面。單擊continue to this website(not recommended).繼續  ø  配置ssl設定當你要求使用者必須使用認證,又或者必須ssl方式串連時,你需要配置ssl設定。雙擊ssl settings如:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.