IIS 8:更完善的憑證管理
IIS 8 中央憑證存放區可簡化在多台伺服器上使用多個憑證的程序。
Jason Helmick
出色地簡單的解決方案,對複雜的問題時,它是令人耳目一新。 這就是只是如何在 IIS 8 的新中央憑證存放區 (CCS) 堆疊。 與早期版本的 IIS 中,您可以安裝使用 Windows PowerShell 遠端處理 Web 場中的證書。 如果您正在使用 IIS 在舊伺服器上,這是一個有用的過程。 如果你可以升級到 IIS 8 的幸運兒之一,然後可以很快看到如何使用證書的過程是輕而易舉的事。
介意商店
Ccs 技術基於一個真正簡單的概念。 將所有的憑證存放區在 Windows 檔案伺服器共用,然後使用這些本地安裝的證書,而 Web 網站綁定。 不只這不會減少混亂的多台伺服器上安裝證書,它大大減少了管理時間和精力定位即將過期的證書。
第一步是將.pfx 檔保存您的證書的檔案伺服器上創建一個共用。 您可以在任何檔案伺服器上,而不考慮作業系統來執行此操作。 似乎最好做到要防止單點故障的群集的檔案伺服器上。 你不想失去這些證書的存取權限。
如果您在工作場中的 Web 服務器,您可能已經有群集的檔案伺服器 — — 或分散式檔案系統 (DFS) — — 可供您共用的配置。 這是另一種為創建共用您的證書的好地方。 創建一個使用者帳戶具有讀取權限的共用,您已經全部設置。
Ccs 技術的工作原理是使用 Web 網站綁定的主機名稱稱完全相同的檔案名稱再加上.pfx 副檔名存儲區中找到證書。 例如,如果有兩個 Web 網站的主機名稱稱 www.WebBikez.com 和 www.MyCompany.com,證書應被命名為:
注意:您應該確保該萬用字元證書 (*。MyCompany.com) 使用底線替換萬用字元字元 (_.MyCompany.com.pfx)。
可以的隨時將 Web 網站添加到此共用添加證書。 您不再需要在您的 Web 服務器上安裝證書。 下一步是安裝和配置 IIS 8 Web 服務器,以便能夠使用這些證書上的二氧化碳捕獲和封存。
安裝 CCS
安裝過程很簡單。 您可以使用圖形化管理工具或 Windows PowerShell。 這裡是在本地 Web 服務器上安裝 CCS 的過程。 最後一節介紹如何在遠端 Web 服務器上,包括 Windows 伺服器 2012年核心執行這些任務。
在繼續之前,必須在您的 Web 服務器上安裝集中 SSL 憑證支援功能。 您可以在 Windows PowerShell 中使用伺服器管理員的圖形化工具或安裝 WindowsFeature Cmdlet:
PS> Install-WindowsFeature Web-CertProvider
當您成功安裝了新的功能時,一個新的圖示將出現下IIS 管理員的管理部分 (見圖 1)。
圖 1 IIS 管理員管理一節中的 CCS 圖示。
按一下圖示以打開一個表單來配置 CCS (見圖 2)。 啟用 CCS,然後供應共用具有讀取權限的共用的 UNC 和使用者帳戶。
圖 2 你可以以圖形化方式配置中央的憑證存放區區。
注意在表單的底部是否您匯出的.pfx 檔之一,您可以指定私密金鑰密碼。 通常情況下,您要匯出的證書與密碼,所以它在前面的示例中輸入。
使用這些圖形化的工具很簡單不夠如果您需要啟用和配置 CCS 單個本機伺服器上。 如果您要自動執行過程,您還可以使用 Windows PowerShell。 當您以這種方式安裝 ccs 技術時,將六個新 Cmdlet 添加:
- 清除-WebCentralCertProvider
- 禁用-WebCentralCertProvider
- 啟用 WebCentralCertProvider
- Get WebCentralCertProvider
- 集 WebCentralCertProvider
- 集 WebCentralCertProviderCredential
這些 Cmdlet 都一目了然,並且有説明檔。 下面是使用啟用 WebCentralCertProvider Cmdlet 來啟用和配置 CCS 在本地 Web 服務器上的一個示例:
PS> Enable-WebCentralCertProvider -CertStoreLocation \\serverdc\certstore -UserName company\certuser -Password P@ssw0rd -PrivateKeyPassword P@ssw0rd
創建 Web 網站綁定
在過程中的最後一步是創建、 修改或添加新的綁定到您的 Web 網站使用 CCS (見圖 3)。 注意到現在有一個新的選項,可以選擇"使用集中式憑證存放區"。
圖 3 綁定到中央憑證存放區您的 Web 網站是最後一步。
這裡是如何使用 Windows PowerShell 創建新的 Web 網站具有正確的 SSL 綁定的示例。 訣竅是新網站 Cmdlet 的 –SslFlags 參數。 SSLFlags 確定您將使用綁定的證書位於何處。 Ccs 技術,要選擇兩個或三個,具體取決於您是否使用伺服器名稱指示 (SNI)。 這裡是的選項:
- 0 — — 經常在 Windows 憑證存放區中的證書
- 1 — — SNI 證書
- 2 — — 二氧化碳捕獲和封存
- 3 — — SNI CCS 證書
下面介紹了如何創建一個新的應用程式池和 CCS 在使用 SNI 證書的 Web 網站:
PS C:\> New-WebAppPool -Name WebBikez_pool PS C:\> New-Website -Name WebBikez -HostHeader www.WebBikez.com -PhysicalPath c:\inetpub\wwwroot -ApplicationPool webbikez_Pool -Ssl -port 443 -SslFlags 3 -force
如果您只需要添加一個綁定到現有的 Web 網站,請執行此操作:
PS C:\> New-WebBinding -Name "WebBikez" -Protocol https -Port 443 -HostHeader www.WebBikez.com –SslFlags 3
遠端 Web 服務器上安裝 CCS
您可以運行所有使用 Windows PowerShell 遠端處理這些命令。 它很容易連接和 CCS 功能安裝到遠端伺服器,包括 Windows 伺服器 2012年核心。
創建使用新 PSSession Cmdlet 的遠端會話:
PS C:\> $Sessions=New-PSSession -ComputerName server2,server3
在遠端電腦上安裝 CCS 功能:
PS C:\> Invoke-Command -Session $sessions {Install-WindowsFeature Web-CertProvider}
這裡才是它真正棘手。 啟用 WebCentralCertProvider Cmdlet 具有一個參數 — — CertStoreLocation — — 接受網路共用為證書的位置。 問題是 Cmdlet 將嘗試驗證共用位置之前的資訊寫入註冊表。
在 Windows PowerShell 遠端處理,這將導致一個多跳的問題。 您連接到的遠端電腦,正試圖連接到遠端電腦。 在某一時刻,IIS 團隊將最有可能修復該 Cmdlet。 直到他們這樣做,這是解決問題的方式。 您可以只是條目到註冊表手動添加。
若要啟用 ccs 技術:
Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name Enabled -Value 1}
若要設置共用位置的證書:
Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name CertStoreLocation -Value \\ServerDC\CertStore}
您不能直接到註冊表中,設置的使用者名和密碼,但集 WebCentralCertProvider Cmdlet 會照顧的其餘部分:
Invoke-Command -Session $sessions {Set-WebCentralCertProvider -Password P@ssw0rd -UserName Company\certuser -PrivateKeyPassword P@ssw0rd}
在這一點上,您可以添加 Web 綁定到您的 Web 網站為 HTTPS 使用 Windows PowerShell 遠端處理,和你完成。 如果您還沒有機會嘗試 IIS 8,或許學習 ccs 技術的工作原理將給你良好的商業理由來看看。 它是您應該考慮向前推進的 IIS 8 中的新功能之一。
Jason Helmick 介面技術培訓,設在Phoenix,亞利桑那州是 Windows PowerShell 技術主任 他是揚聲器、 作者、 老師和無意中 IIS 管理員。