我將我的X509Certificate存儲在數據庫中(位於byte[]
),以便我的應用程序可以檢索證書並使用它來簽署我的JWT。無法在Azure中訪問我的X509Certificate2的PrivateKey
我的x509Certificate被傳遞給我在我的機器上生成的.pfx文件,但是現在它以字節字符串的形式位於數據庫中。
當我運行它時,我的應用程序在本地完全正常工作。應用程序可以正確地創建該X509Certificate2的一個實例並將其用於我的要求,但是當我嘗試在我的azurewebsites Web應用程序中使用它時會出現問題。
基本上我無法訪問證書專用密鑰實例變量,我得到一個異常
System.Security.Cryptography.CryptographicException: Keyset does not exist
而且我重新實例化的證書與此
var cert = new X509Certificate2(myCertInBytes, myCertPass,
X509KeyStorageFlags.PersistKeySet |
X509KeyStorageFlags.MachineKeySet |
X509KeyStorageFlags.Exportable);
我使用ASPNET 5 RC1 -update1。我也試着在不同的機器上運行它,並且它工作正常,只有當我發佈到Azure時纔會出現此問題。並且還添加其他內容,此應用程序正在運行,當我運行使用DNX版本beta7運行的同一項目時
任何幫助表示讚賞。
您確定數據庫中的證書是否包含私鑰集?這不是一個公共證書,是嗎? –
@ZainRizvi它肯定包含在內,如果我在本地運行密鑰,我可以檢索私鑰(來自Azure數據庫上的X509 Cert)。但是,將其部署到Azure時無法檢索它。 – Lutando