2010-07-30 85 views
4

我有以下Web場:IIS7:如何將SSL證書綁定到Https主機頭?


1. http: mydomain1.com port: 80 
2. http: mydomain2.com port: 80 
3. https: port: 443 SSL Certificate: myCertificate 

在II7當您選擇HTTPS綁定,主機名稱將被禁用。 我使用appcmd將主機名「admin.mydomain2.com」綁定到 網站。

 

appcmd set site /site.name:"admin" /+bindings.[protocol='https',bindingInformation='*:443:admin.mydomain2.com'] 
 

一個新項目被添加到綁定。

 

3. a. https: port: 443 SSL Certificate: myCertificate 
    b. https: admin.mydomain2.com port:443 SSL Certificate: None 

如果例如我想刪除的第一項(a)中,是有可能的證書分配給第二結合(B)?

回答

-1

此博客帖子可能會對您有所幫助。它讓我着手在IIS中定義主機頭併爲其分配正確的SSL證書,並且如果我們將127.0.0.1指向主機文件中的站點地址,它本地正常工作,但它在放置時超時在生產中。希望這會進一步給你一點:

http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx

刪除所有綁定,指定使用命令行的SSL證書,然後通過命令行來添加與主機頭的SSL綁定。

+0

該URL給我一個ASP.NET黃色屏幕死亡... – TLS 2015-02-10 21:15:58

2

作爲答案的鏈接不是最好的辦法,因爲這些鏈接經常會變冷。以下是上述答案的摘要以及來自其他地方的支持信息。

說到SSL,主機頭真的被冷落了。 SSL的目的是加密您的流量,並且部分流量是瀏覽器發送到服務器的HTTP頭。其中一個標題就是IIS用來確定要加載哪個站點的「主機」標頭。由於在發送請求頭之前需要加載證書來建立安全連接,因此IIS必須僅根據IP地址和端口號選擇證書,從而使主機頭無效。但是,這並不免除我們必須遵守STIG v6724,因爲它與IIS站點配置有關。因此,微軟不會允許您輸入信息,即使微軟沒有任何用處,但微軟並不會允許您輸入。但是,有一種解決方法。

請注意,此答案假定您的證書已經生成,添加到證書存儲並添加到IIS。它還假定除了SSL之外,您不需要任何其他綁定到您的網站。

首先,我們需要收集一些信息。我們需要散列,應用程序ID和主機名。

  1. 打開IIS,選擇您的服務器,然後雙擊底部的「服務器證書」。 請注意「發送至」地址。這是我們的主機名。保存這個。
  2. 選擇您的網站
  3. 綁定您的網站80端口使用HTTP協議
  4. 刪除所有其他語言綁定
  5. 綁定您的網站443端口使用HTTPS協議
  6. 打開命令提示符

    netsh http show sslcert 
    
  7. 保存證書哈希和應用ID

  8. 取消HTTPS網站上的
  9. 結合在命令提示符下:

    netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>} 
    
    appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>'] 
    

注:Appcmd.exe的可以在C發現:\ WINDOWS \ SYSTEM32 \ insetsrv。您可能需要在該文件夾中才能使用此命令。

  • 刪除HTTP從您的網站結合
  • 注意:您可以將HTTP綁定,如果你希望你的網站會自動重定向到https,但是這是另一個話題。

    +1

    據我所知,你的命令有一個錯字: netsh http add sslcert ipport = 0.0.0.0:443 certstorename = my certhash = <將證書哈希放在這裏> appid = {<在此處放置應用ID>} Eg而不是'certstoreanme',它應該是'certstorename' – 2014-12-16 09:38:15

    +0

    @АнтонКурьян修復那裏的錯字。 – TLS 2015-02-10 21:54:15

    相關問題