我最近將我的應用程序從 ASP.Net 重寫為 ASP.Net Core,從那時起,我無法讀取證書的私鑰。這是這樣做的代碼:public static byte[] DecryptWithCert([NotNull] X509Certificate2 cert, byte[] payload){ using (var rsaPrivateKey = cert.GetRSAPrivateKey()) { return rsaPrivateKey.Decrypt(payload, RSAEncryptionPadding.OaepSHA256); }}證書肯定有一個私鑰,甚至 cert 對象也顯示了這一點。然而,閱讀它竟然拋出了這個異常:cert.PrivateKey' threw an exception of type 'Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException異常消息說:Keyset couldn't be found這里可能是什么問題?編輯:看起來問題可能是由于 ASP.Net Core 沒有通過 IIS 運行,并且現在可能缺少訪問該證書私鑰的權限。我剛剛用一個小型控制臺應用程序對其進行了測試,該應用程序能夠獲得 PK,因此證書不會被破壞。但是,我真的不知道我必須將什么用戶添加到權限中才能使我的 Kestrel 托管應用程序讀取該證書密鑰。
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
好的,我發現了問題:
我剛剛在 certmgr -> 所有任務 -> 管理用戶列表的私鑰中添加了“網絡服務”。
我的問題具體是,在這篇文章之前的最初方法中,我也嘗試過這個,但不知何故 Windows 仍然希望我用德語輸入該用戶,因為我最近從德語操作系統切換到英語操作系統。因此,這顯然只是此處正確命名的問題。
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消