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 主控存放區:
- 開啟 MMC。
- 在 [ 檔案] 底下,選取 [新增/移除嵌入式管理單元]:
- 選取 [ 憑證]。 按一下 [ 新增]:
- 選取 [電腦帳戶]:
- 選取 [本機電腦 ],然後按一下 [ 完成]:
- 按一下 [ 確定]:
- 在流覽窗格中,找出 [Web 主控 存放區]:
Web 主控存放區的運作方式與個人存放區類似,因此匯入和匯出憑證的所有現有工具的運作方式都相同。 Web 主控存放區與個人存放區的主要差異在於,Web 主控存放區的設計目的是要調整為較高的憑證數目。 - 將您的範例憑證匯入 Web 主 控存放區。
建立安全網站:
開啟 IIS 管理員。
在左側導覽視窗中選取 [網站 ]:
以滑鼠右鍵按一下 [網站], 然後選取 [ 新增網站]:
填入資訊,就像建立任何網站一樣:
網站名稱:測試
實體路徑:
c:\inetpub\wwwroot
類型:HTTPs
主機名稱:TAPTesting
- 這是 Windows Server 8 的新功能,該主機名稱可以針對 SSL 指定。
- 若要避免憑證名稱不符錯誤,請確定此處指定的主機名稱符合憑證的 CN 名稱。
- 此組態的實際值會根據所使用的範例憑證而有所不同。
使用伺服器名稱指示:已選取
SSL 憑證:快取憑證的名稱;例如:TAPTesting。
- 請注意,憑證會同時來自 個人 和 Web 主 控存放區。
確認網站已建立:
這樣就大功告成了。 已使用 SNI 建立安全網站。 管理體驗與傳統 SSL 系結非常類似。 唯一的差異是:
- 您可以為 SSL 網站指定主機名稱。
- 憑證會儲存在 Web 主控存放區中,以取得延展性。
測試安全網站:
開啟瀏覽器並瀏覽至 https://TAPTesting/
。 請注意,作為必要條件的一部分,您的主機檔案應該已修改為將此要求路由傳送至 localhost:
此外,若要查看新的 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) 功能。