获取PrivateKey null X509Certificate2 c#

时间:2016-02-06 21:28:40

标签: c# x509certificate

  

这是一个控制台应用程序,我正在使用.net框架4。   当我尝试从证书中获取私钥时,我将其视为空,不知道为什么会发生这种情况?

B

2 个答案:

答案 0 :(得分:2)

通常,扩展名为“.cer”的文件只是证书,即公钥和一些关联的元数据。 PFX / PKCS#12文件也可以包含私钥。

您可以检查myCert2.HasPrivateKey以确定是否为证书加载了任何私钥。由于myCert2.PrivateKey只应在HasPrivateKey为false时返回null,我很确定您会发现系统根本不知道您的证书的私钥。

答案 1 :(得分:1)

目前,此属性仅支持RSA或DSA密钥,因此它返回RSACryptoServiceProvider或DSACryptoServiceProvider对象。如果没有私钥与证书关联,则返回null。

https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2.privatekey(v=vs.110).aspx