无法打开 RSA 密钥容器。视窗服务器 2008 R2

Ble*_*ger 8 iis windows-server-2008 iis-7 rsa iis-7.5

我正在我们的 Windows 2008 R2 服务器上设置第二个 asp.net 站点。我们使用 RSA 密钥容器来加密我们的连接字符串。我创建了一个新的应用程序池,其所有设置与支持我们当前站点的默认应用程序池相同,包括使用相同的用户帐户作为身份。当我尝试访问新站点时,出现以下错误:无法打开 RSA 密钥容器

如果我更改新网站以使用我们的默认应用程序池,它就可以工作。因此,我尝试在管理员命令提示符中使用以下命令让新应用程序池中的用户帐户访问 RSA 密钥容器:

aspnet_regiis -pa "KeyContainerName" "dmz\UserName"

我收到以下错误:未找到 RSA 密钥容器。

我运行以下命令来安装密钥容器:

aspnet_regiis -pi "KeyContainerName" "c:\keys.xml"

我收到以下错误:对象已存在

我尝试运行以下命令来删除密钥容器:

aspnet_regiis -pz "KeyContainerName"

我收到此错误:未找到 RSA 密钥容器。失败的!

所以我完全感到困惑,一个命令告诉我它已经存在,这是有道理的,因为我知道我们的一个网站正在使用它,但是当我试图删除它时,它告诉我它不存在。它适用于一个应用程序池,但不适用于使用完全相同身份的新应用程序池?我在其他 12 台服务器上做了完全相同的设置,它们都运行良好。

小智 5

我也有过类似的事情。

如果您使用的帐户没有密钥容器的权限,那么当您尝试向其授予权限 ( aspnet_regiis -pa "KeyContainerName" "dmz\UserName") 时,您会收到“找不到密钥容器”错误。然而钥匙确实存在;因此,当您尝试重新创建它时会出现错误。

这意味着密钥是由不同的帐户创建的。

如果您可以使用该帐户登录,那么您可以执行以下操作

aspnet_regiis -pa "KeyContainerName" "dmz\YourUserName" -full
Run Code Online (Sandbox Code Playgroud)

授予您自己的帐户对密钥的控制权。我建议建立一个 KeyAdministrators NT 组并授予对该组的访问权限并让您自己加入该组。

  • 如果您无权访问旧帐户,请转到 C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys,然后在记事本中打开其中的所有密钥 => 您可以使用的密钥t open 可能是有问题的 + 密钥的名称是明文形式 => 通过文件属性为管理员组提供对该密钥的访问权限 => 运行 aspnet_regiis -pa "KeyContainerName" "Administrators" -full 这样未来的用户就不会该键有问题 (2认同)