當前位置:編程學習大全網 - 源碼下載 - 如何將加密的(web.config)文件部署到其他服務器上

如何將加密的(web.config)文件部署到其他服務器上

對於將同壹個經過加密的 Web.config 文件部署到數臺服務器上的網絡場,這會非常有用。在這種情況下,還必須將相同的 RSA 密鑰容器部署到這些服務器上。為了實現此目的,需要為應用程序創建壹個 RSA 密鑰容器,將它導出到 XML 文件,然後在每臺需要對加密的 Web.config 文件進行解密的服務器上導入該文件。在承載多個 ASP.NET 應用程序的單臺 Web 服務器上,創建 RSA 密鑰容器也非常有用。通過為壹個客戶的每個或每組應用程序都創建壹個 RSA 密鑰容器,可以確保壹個應用程序的 RSA 密鑰容器不能用來對另壹個應用程序的 Web.config 文件進行解密,從而提高應用程序的敏感配置信息的安全性。創建RSA 密鑰容器若要創建 RSA 密鑰容器,請使用 ASP.NET IIS 註冊工具 (Aspnet_regiis.exe) 及 –pc 開關。必須為密鑰容器指定壹個名稱,該名稱標識應用程序的 Web.config 文件的 configProtectedData 節中指定的 RsaProtectedConfigurationProvider 所使用的密鑰容器。為確保可以導出新創建的 RSA 密鑰容器,必須包括 -exp 選項。例如,下面的命令創建壹個名為 SampleKeys 的 RSA 密鑰容器,該容器是可導出的計算機級密鑰容器。aspnet_regiis -pc "SampleKeys"–exp下面的示例演示了 Web.config 文件的 configProtectedData 節。該節指定使用名為 SampleKeys 的計算機級 RSA 密鑰容器的 RsaProtectedConfigurationProvider。<configProtectedData> <providers> <add name="SampleProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a processorArchitecture=MSIL" keyContainerName="SampleKeys" useMachineContainer="true" /> </providers> </configProtectedData>授予對 RSA 密鑰容器的訪問權限默認情況下,RSA 密鑰容器受到所在服務器上的 NTFS 訪問控制列表 (ACL) 的嚴密保護。這樣能夠限制可以訪問加密密鑰的人員,從而增強加密信息的安全性。必須首先向 ASP.NET 應用程序的進程標識授予對該 RSA 密鑰容器的讀取訪問權限,然後 ASP.NET 才能使用 RSA 密鑰容器。有關設置和確定 ASP.NET 應用程序標識的信息,請參見 ASP.NET 模擬。可以使用 Aspnet_regiis.exe 工具及 -pa 開關,向 ASP.NET 應用程序的標識授予讀取 RSA 密鑰容器的權限。例如,下面的命令向 Windows Server 2003 NETWORK SERVICE 帳戶授予對名為 SampleKeys 的計算機級 RSA 密鑰容器的讀取訪問權限:aspnet_regiis -pa "SampleKeys" "NT AUTHORITY/NETWORK SERVICE"若要使用計算機配置中指定的默認 RsaProtectedConfigurationProvider,必須首先向應用程序的 Windows 標識授予對名為 NetFrameworkConfigurationKey 的計算機密鑰容器的訪問權限,該計算機密鑰容器是為該默認提供程序指定的密鑰容器。例如,下面的命令向 NETWORK SERVICE 帳戶授予對默認 RsaProtectedConfigurationProvider 所使用的 RSA 密鑰容器的訪問權限。aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"NetFrameworkConfigurationKey RSA 密鑰容器是 Aspnet_regiis.exe 工具所發出的命令的默認密鑰容器。因此上述命令也可以按以下方式發出:aspnet_regiis -pa "NT AUTHORITY/NETWORK SERVICE"導出RSA 密鑰容器若要將 RSA 密鑰容器導出到 XML 文件,可以使用 Aspnet_regiis.exe 工具及 –px 開關。XML 文件可以用作 RSA 密鑰容器的備份,也可用於在其他服務器上導入 RSA 密鑰容器。若要對加密信息進行解密,RSA 密鑰容器的私鑰部分是必需的。若要在另壹臺服務器上使用導出的密鑰容器,還需導入私鑰。通過在導出密鑰時指定 –pri 選項,可以在 XML 文件中包括私鑰。還必須指定導出的密鑰容器是計算機級還是用戶級的。若要導出用戶級密鑰容器,必須以其 Windows 配置文件存儲了密鑰的用戶的身份登錄。若要指定用戶級密鑰,請在導出加密密鑰信息時包括 -pku 選項;否則,導出的密鑰將來自計算機密鑰存儲區。有關計算機級和用戶級加密密鑰的更多信息,請參見 了解計算機級別和用戶級別的 RSA 密鑰容器。例如,下面的命令將名為 SampleKeys 的計算機級 RSA 密鑰容器導出到名為 keys.xml 的文件中並包括了私鑰信息。aspnet_regiis -px "SampleKeys" keys.xml -pri導入RSA 密鑰容器可以使用 Aspnet_regiis.exe 工具和 –pi 開關,從 XML 文件導入 RSA 密鑰容器。還必須指定導入的密鑰容器是計算機級還是用戶級的密鑰容器。

  • 上一篇:Python數據結構與算法-哈希map的實現及原理
  • 下一篇:寫文章源代碼
  • copyright 2024編程學習大全網