2011-01-20 158 views
1

我需要在我的開發機器(Windows XP SP-3)上加密我的web.config文件並將RSA密鑰導出到我的QA機器(Windows Server 2003)。我使用下面的命令來加密我的文件。無法導出RSA密鑰容器文件

aspnet_regiis -pe "appSettings" -app "/VirtualDirectoryName" -prov "RsaProtectedConfigurationProvider" 

,然後我在web.config文件中添加以下部分

<configProtectedData> 

然後創建一個名爲的RSA容器 「SampleKeys

Web.Config被加密得很好,我可以在我的dev mac上使用這個文件海因。然而,我不得不打開「模擬」,並使用我的Windows用戶名和密碼。

我需要將我的RSA密鑰導出到QA服務器,以便我可以使用我的加密配置文件。 所以我試圖導出RSA密鑰及其失敗。我不明白原因,因爲我遵循以下鏈接中提到的所有步驟; link text

當我嘗試導出RSA容器時,出現錯誤,提示「RSA容器未找到」。但是當我嘗試再次使用相同的名稱創建RSA容器時,出現錯誤,指出「RSA容器已經存在」。 alt text

即使下列命令執行成功。

aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE" 

但是我不能執行下面的命令;

aspnet_regiis -pa "SampleKeys" "NT AUTHORITY\NETWORK SERVICE" 

我得到了同樣的錯誤,說「找不到RSA容器」。

我還給「C:\ Document and Settings \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKey」文件夾提供了對ASPNET用戶的讀訪問權限。 但沒有任何工作。

我錯過了什麼?

+0

請我知道這是舊本(http://stackoverflow.com/questions/39104662/unable-to-encrypt-web-config-file-using-rsa-encryption-method) – lavan 2016-08-24 19:35:37

回答

1

找到了答案!創建導出密鑰後,您總是需要引用「SampleKeys」-exp。

aspnet_regiis -pa "SampleKeys"-exp "NT AUTHORITY\NETWORK SERVICE" 
+1

幫助,但我想糾正......這是錯誤的。您創建了名爲「SampleKeys」-exp的容器,因爲MSDN文章中的示例不正確。 -exp部分在名稱和交換機之間需要一個空格,否則它將成爲名稱的一部分。 – 2014-06-05 16:19:43