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

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
好的,我發(fā)現(xiàn)了問(wèn)題:
我剛剛在 certmgr -> 所有任務(wù) -> 管理用戶列表的私鑰中添加了“網(wǎng)絡(luò)服務(wù)”。
我的問(wèn)題具體是,在這篇文章之前的最初方法中,我也嘗試過(guò)這個(gè),但不知何故 Windows 仍然希望我用德語(yǔ)輸入該用戶,因?yàn)槲易罱鼜牡抡Z(yǔ)操作系統(tǒng)切換到英語(yǔ)操作系統(tǒng)。因此,這顯然只是此處正確命名的問(wèn)題。
- 1 回答
- 0 關(guān)注
- 125 瀏覽
添加回答
舉報(bào)
0/150
提交
取消