Windows-Server-2008

無法打開 RSA 密鑰容器。視窗伺服器 2008 R2

  • September 29, 2015

我正在我們的 Windows 2008 R2 伺服器上設置第二個 asp.net 站點。我們使用 RSA Key Container 來加密我們的連接字元串。我創建了一個新的應用程序池,其設置與支持我們目前站點的預設應用程序池的所有設置相同,包括使用相同的使用者帳戶作為身份。當我嘗試訪問新站點時,出現以下錯誤:無法打開 RSA 密鑰容器

如果我將新網站更改為使用我們的預設應用程序池,它就可以工作。因此,我嘗試使用管理員命令提示符中的以下命令,讓新應用程序池中的使用者帳戶訪問 RSA 密鑰容器:

aspnet_royal -pa “KeyContainerName” “dmz\UserName”

我收到以下錯誤:找不到 RSA 密鑰容器。

我執行以下命令來安裝密鑰容器:

aspnet_regiis -pi “KeyContainerName” “c:\keys.xml”

我收到以下錯誤:對像已存在

我嘗試執行以下命令來刪除密鑰容器:

aspnet_regiis -pz “KeyContainerName”

我收到此錯誤:未找到 RSA 密鑰容器。失敗的!

所以我完全感到困惑,一個命令告訴我它已經存在,這是有道理的,因為我知道我們的一個網站正在使用它,但是當我試圖刪除它時告訴我它不存在。它適用於一個應用程序池,但不適用於使用完全相同身份的新應用程序池?我在其他 12 台伺服器上進行了完全相同的設置,它們都執行良好。

我有過類似的事情。

如果您使用的帳戶沒有密鑰容器的權限,那麼當您嘗試授予它權限時 ( aspnet_regiis -pa "KeyContainerName" "dmz\UserName"),您會收到未找到密鑰容器的錯誤。但是密鑰確實存在;因此,當您嘗試重新創建它時會出現錯誤。

這意味著密鑰是由不同的帳戶創建的。

如果您可以使用該帳戶登錄,則可以執行

aspnet_regiis -pa "KeyContainerName" "dmz\YourUserName" -full

授予您自己的帳戶對密鑰的控制權。我建議建立一個 KeyAdministrators NT 組並授予對該組的訪問權限並讓自己加入該組。

引用自:https://serverfault.com/questions/293416