ASP.NET 連線字串加密
如果只想快點做好,不想看一堆有的沒的這裡有賴人包
在主機上CommendLine上輸入即可
如果只想快點做好,不想看一堆有的沒的這裡有賴人包
在主機上CommendLine上輸入即可
加密:
aspnet_regiis -pe "connectionStrings" -app "/FooApplication"
(實體路徑用-pef)
aspnet_regiis -pef "connectionStrings" "C:\Inetpub\wwwroot\FooApplication"
解密:
aspnet_regiis -pd "connectionStrings" -app "/FooApplication"
aspnet_regiis -pe "connectionStrings" -app "/FooApplication"
(實體路徑用-pef)
aspnet_regiis -pef "connectionStrings" "C:\Inetpub\wwwroot\FooApplication"
解密:
aspnet_regiis -pd "connectionStrings" -app "/FooApplication"
web.config要加密的連線字串tag
ASP.NET應用程式路徑
在多台機器上做加密
不用一台一台的做,只需由某一台產生金鑰並匯出即可,只是第一次的設定過程很麻煩!
1.建立可匯出的RSA金鑰容器:
建立RSA金鑰容器:
aspnet_regiis -pc "FooKey" -exp
刪除金鑰:
aspnet_regiis -pz "FooKey"
金鑰自訂名稱
讓私密金鑰為可匯出狀態
aspnet_regiis -pc "FooKey" -exp
刪除金鑰:
aspnet_regiis -pz "FooKey"
金鑰自訂名稱
讓私密金鑰為可匯出狀態
2.將RSA金鑰容器XML檔匯出至C槽根目錄(比較好找)
aspnet_regiis -px "FooKey" C:\FooKey.xml -pri
包含私密金鑰
包含私密金鑰
3.在其他機器上匯入金鑰,記得先把金鑰XML拷貝過去
aspnet_regiis -pi "FooKey" C:\FooKey.xml
4.為容器加入帳戶存取權限
aspnet_regiis -pa "FooKey" "NT AUTHORITY\NETWORK SERVICE"
注意:
新版IIS「NT AUTHORITY\NETWORK SERVICE」會使用「IIS AppPool\應用程式集區名稱」,語法就變成
aspnet_regiis -pa "FooKey" "IIS AppPool\FooApplication"
請參考保哥的文章
注意:
新版IIS「NT AUTHORITY\NETWORK SERVICE」會使用「IIS AppPool\應用程式集區名稱」,語法就變成
aspnet_regiis -pa "FooKey" "IIS AppPool\FooApplication"
請參考保哥的文章
5.Web.config的configProtectedData區段設定
<configuration>
<configProtectedData defaultProvider="FooKey">
<providers>
<add name="FooKey"
type="System.Configuration.RsaProtectedConfigurationProvider,
System.Configuration, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="FooKey"
useMachineContainer="true" />
</providers>
</configProtectedData>
</configuration>
<configProtectedData defaultProvider="FooKey">
<providers>
<add name="FooKey"
type="System.Configuration.RsaProtectedConfigurationProvider,
System.Configuration, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="FooKey"
useMachineContainer="true" />
</providers>
</configProtectedData>
</configuration>
建議把configProtectedData <add name="FooKey".......打成一行,因為經過aspnet_regiis加密後,可能會把斷行變成這副德行,造成程式無法運作
6.進行加密
aspnet_regiis -pe "connectionStrings" -app "/FooApplication" -prov "FooKey"
7.將Web.config拷貝至其他器機中
參考資料:
MSDN、The Will Will Web、ASP.NET RegIIS說明文件