共用方式為


IIS 8.0 伺服器名稱指示 (SNI) :SSL 延展性

作者 :Shaun Eagan

相容性

版本 備註
IIS 8.0 伺服器名稱指示是在 IIS 8.0 中引進。
IIS 7.5 IIS 7.5 不支援伺服器名稱指示。
IIS 7.0 IIS 7.0 不支援伺服器名稱指示。

問題

隨著更多電子商務網站在線上儲存和共用機密檔,裝載及調整安全網站的能力越來越重要。 在 Windows Server 2012 之前,在裝載安全網站方面有幾項挑戰:

  • SSL 延展性:在多租使用者環境中,例如共用主機,在 Windows Server 上可裝載的安全網站數目有一項限制,導致網站密度偏低。
  • IPv4 有問題:因為網路端點只能透過 IP:Port 系結來識別,其中租使用者要求使用標準 SSL 埠 443,裝載安全網站通常表示為每個租使用者提供私人 IP 位址。

解決方法

在 Windows Server 2012 上,IIS 支援伺服器名稱指示 (SNI) ,這是將虛擬網域納入 SSL 交涉的 TLS 延伸模組。 這實際上表示虛擬功能變數名稱或主機名稱現在可用來識別網路端點。 此外,已建立可高度調整的 WebHosting 存放區來補充 SNI。 結果是在 Windows Server 2012 上安全月臺密度較高,而且只使用一個 IP 位址即可達成。

請注意,若要使用這項功能,您的用戶端瀏覽器必須支援 SNI。 大部分的新式瀏覽器都支援 SNI;不過,Windows XP 上任何版本) 的 Internet Explorer (不支援 SNI。

逐步指示

先決條件:

  • IIS 8.0 安裝在 Windows Server 2012 上。

    • WebHosting 憑證存放區和 SNI 都是預設 IIS 安裝的一部分。 不需要從 伺服器管理員 安裝特定的 IIS 功能。
  • 範例憑證。

  • \windows\system32\drivers\etc\hosts 已修改為用於範例網站和憑證。 例如,如果憑證的 CN 名稱是 TAPTesting,則主機檔案必須包含:

    127.0.0.1 TAPTesting
    

已知 Bug 的因應措施:

當有傳統 SSL 系結 (IP:Port) 和 SNI 系結時,IIS 管理員可能會移除非預期的 SSL 系結, (Hostname:Port) 設定在同一部電腦上。 若要因應此問題和/或確認實際的 SSL 系結,請使用命令列工具:

netsh http show sslcert

將憑證匯入至 Web 主控存放區:

  1. 開啟 MMC
  2. 在 [ 檔案] 底下,選取 [新增/移除嵌入式管理單元]:
    顯示 M M C 中 [檔案] 功能表的螢幕擷取畫面。醒目提示 [新增移除嵌入式管理單元]。
  3. 選取 [ 憑證]。 按一下 [ 新增]:
    顯示 [新增或移除嵌入式管理單元] 對話方塊的螢幕擷取畫面,其中已選取 [可用嵌入式管理單元] 底下的 [憑證]。
  4. 選取 [電腦帳戶]:
    顯示 [憑證] 嵌入式管理單元對話方塊的螢幕擷取畫面。已選取 [電腦帳戶]。
  5. 選取 [本機電腦 ],然後按一下 [ 完成]:
    顯示 [選取電腦] 對話方塊的螢幕擷取畫面。已選取本機電腦。
  6. 按一下 [ 確定]:
    顯示 [新增] 或 [移除嵌入式管理單元] 的螢幕擷取畫面。
  7. 在流覽窗格中,找出 [Web 主控 存放區]:
    此螢幕擷取畫面顯示 [憑證] 節點底下的 [Web 裝載] 醒目提示。
    Web 主控存放區的運作方式與個人存放區類似,因此匯入和匯出憑證的所有現有工具的運作方式都相同。 Web 主控存放區與個人存放區的主要差異在於,Web 主控存放區的設計目的是要調整為較高的憑證數目。
  8. 將您的範例憑證匯入 Web 主 控存放區。

建立安全網站:

  1. 開啟 IIS 管理員

  2. 在左側導覽視窗中選取 [網站 ]:
    顯示 I S 管理員的螢幕擷取畫面。已選取網站。

  3. 以滑鼠右鍵按一下 [網站], 然後選取 [ 新增網站]:
    顯示 [網站] 操作功能表的螢幕擷取畫面。

  4. 填入資訊,就像建立任何網站一樣:

    • 網站名稱:測試

    • 實體路徑c:\inetpub\wwwroot

    • 類型:HTTPs

    • 主機名稱:TAPTesting

      • 這是 Windows Server 8 的新功能,該主機名稱可以針對 SSL 指定。
      • 若要避免憑證名稱不符錯誤,請確定此處指定的主機名稱符合憑證的 CN 名稱。
      • 此組態的實際值會根據所使用的範例憑證而有所不同。
    • 使用伺服器名稱指示:已選取

    • SSL 憑證:快取憑證的名稱;例如:TAPTesting。

      • 請注意,憑證會同時來自 個人Web 主 控存放區。

      顯示 [新增網站] 對話方塊的螢幕擷取畫面。

  5. 確認網站已建立:
    顯示 [網站] 節點底下醒目提示 [測試] 的螢幕擷取畫面。

  6. 這樣就大功告成了。 已使用 SNI 建立安全網站。 管理體驗與傳統 SSL 系結非常類似。 唯一的差異是:

    • 您可以為 SSL 網站指定主機名稱。
    • 憑證會儲存在 Web 主控存放區中,以取得延展性。

測試安全網站:

開啟瀏覽器並瀏覽至 https://TAPTesting/ 。 請注意,作為必要條件的一部分,您的主機檔案應該已修改為將此要求路由傳送至 localhost:

顯示 Internet Explorer 的螢幕擷取畫面。我 S 8 是以網頁上的大型文字撰寫。

此外,若要查看新的 SSL 系結類型,請在提升許可權的命令列視窗中輸入下列內容:

netsh http show sslcert

顯示命令視窗的螢幕擷取畫面。主機名稱和埠會反白顯示。

請注意,SSL 系結是 主機名稱:port ,其值為 TAPTesting:443

案例

嘗試部署下列案例:

  • SNI 的設計目的是要針對多租使用者環境進行調整。 請嘗試使用 SNI 設定數千個安全網站。
  • 不同于舊版 Windows Server,Windows Server 2012 上的憑證會隨選載入記憶體。 使用 SNI 設定數千個安全月臺之後,請將 GET 要求傳送至其中一個安全月臺,並觀察記憶體使用量。 這可忽略。 在舊版的 Windows Server 上,如果已設定數百個安全網站,則只傳送一個 GET 要求會導致 Windows Server 載入 所有 憑證,因而造成高記憶體使用量,並進一步限制延展性。
  • 使用 SNI 和傳統安全網站設定 Windows Server 2012。 它們的設計目的是要共存。

總結

您已成功探索 Windows Server 2012 中的伺服器名稱指示 (SNI) 功能。