我需要在我的开发机器(Windows XP SP-3)上加密我的web.config文件,并将RSA密钥导出到我的QA机器(Windows Server 2003)。我使用以下命令加密我的文件。
aspnet_regiis -pe "appSettings" -app "/VirtualDirectoryName" -prov "RsaProtectedConfigurationProvider"
然后我在web.config文件中添加了以下部分
<configProtectedData>
然后我创建了一个名为“ SampleKeys ”的RSA容器
Web.Config很好地加密了,我能够在我的开发机器上使用这个文件。然而,我不得不打开“模拟”并使用我的Windows用户名和密码。
我需要将我的RSA密钥导出到QA服务器,以便我可以使用我的加密配置文件。 所以我试图导出RSA密钥及其失败。我不明白原因,因为我正在遵循以下链接中提到的所有步骤; link text
当我尝试导出RSA容器时,我收到错误消息“未找到RSA容器”。但是当我尝试使用相同的名称再次创建RSA容器时,我收到错误,指出“RSA容器已存在”。
即使以下命令也成功执行。
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 :(得分:2)
找到答案!创建导出密钥后,始终需要引用“SampleKeys”-exp。
aspnet_regiis -pa "SampleKeys"-exp "NT AUTHORITY\NETWORK SERVICE"
答案 1 :(得分:0)
务必以管理员身份打开命令窗口 。然后再试一次。
另外,在这个帖子中:
http://forums.asp.net/t/960412.aspx/1?RSA+Key+container+was+not+found+ERROR
使用此命令创建了一个默认容器:
aspnet_regiis -pc“NetFrameworkConfigurationKey”-exp