Shared Configuration in IIS 7.0
在IIS 7.0中,提供了分享設定檔的功能,讓管理者在同時管理多台server的時候少掉了不少同步設定的問題。
可以被分享的設定檔包含了:
- applicationHost.config
- administration.config
- IIS及ASP.NET使用的加密金鑰(configEncKey.key)
不會被匯出的檔案:
- machine.config
- root Web.config
- 網站的 Web.config
- 網站內容
- 客制化模組
- 已安裝的模組。
設定步驟:
- 匯出設定檔:
在網站目錄下進入Shared Configuration,在右邊的Actions列表上執行匯出設定檔。
Physical path:可以是本機路徑或是UNC路徑。
Connect As:設定存取檔案路徑的權限。
Encryption Key:用來加密configEncKey.key檔案。(會檢查密碼強度)
**匯出完畢後,可以在匯出資料夾找到剛才說的那三個檔案。
- 接下來指定存取分享設定檔的路徑以及可以存取路徑的網域帳號密碼:
按下Apply後,應該會要求輸入剛才匯出時要求加密的密碼。(用來解密configEncKey.key)
IIS Manager在啟動分享設定時會做二件事,第一,匯入RSA Keys相關設定,第二,更新 %windir%\System32\inetsrv\config
下的 redirection.config檔案。這個檔案儲存了分享設定的相關資訊。也就是我們剛才從介面輸入的相關資訊。
<configSections>
<section name="configurationRedirection" />
</configSections>
<configurationRedirection enabled="true" path="\\machinename\centralconfig$\" userName="ConfigUser1 or domain\user" password="ConfigPass1 or domainPassword" />
</configuration>
除了透過介面設定分享,也可以透過appcmd.exe設定。
備註:
在預設的情況下,IIS 7.0 為了一些安全屬性,包含了二個主要的提供者來進行加解密的動作,這二個提供者可以在applicationHost.config中的<configProtectedData>區塊找到。這些加解密的動作每台機器都是不一樣的,為了同步設定,我們要把這二個Provider的設定匯出。在applicationHost.config的<configProtectedData>區塊中,找到二個獨一的KeyContainerName,然後執行匯出動作。然後copy到目的Server執行匯入動作。
AesProvider是用來處理在system.webServer的加解密區塊。
IISWASOnlyRsaProvider是用來處理system.applicationHost的加解密區塊。
匯出指令:
aspnet_regiis -px "iisConfigurationKey" "D:\iisConfigurationKey.xml" –pri
匯入指令:
aspnet_regiis -pi "iisConfigurationKey" "D:\iisConfigurationKey.xml" –pri
-px表示匯出keys,而-pri表示包含私鑰,,-pi是匯入。
RSA Keys會被儲存在%ALLUSERPROFILE%\Microsoft\Crypto\RSA\MachineKeys目錄中。
相關連結:
Configuring a Web Farm Using IIS Shared Configuration (影片)
使用程式碼存取安全性原則工具 (Caspol.exe) 設定安全性原則