2011-01-20 161 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