我在本地计算机商店中安装了x509。我如何阅读C#? 我需要使用获得的私钥这样如何从商店中读取私钥
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider).cert.PrivateKey()
我在本地计算机商店中安装了x509。我如何阅读C#? 我需要使用获得的私钥这样如何从商店中读取私钥
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider).cert.PrivateKey()
这将让你从“我”(个人)库中的证书。
var store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Single(c => c.Thumbprint == "Whatever-Your-Thumbprint-Is");
store.Close();
此时您将拥有一个X509Certificate2,您可以从中访问PrivateKey属性。
public void AddCertificate()
{
if (this.ClientCertificates == null)
{
this.ClientCertificates = new X509CertificateCollection();
}
X509Certificate cert = new X509Certificate(path, pass, X509KeyStorageFlags.MachineKeySet);
this.ClientCertificates.Add(cert);
}
是的我只需要知道如何从本地商店检索证书。目前我有C驱动器上的证书并从那里读取 – JohnM
@JohnM您需要某种方法来识别您想要的证书。证书存储区可以包含许多证书。通常使用指纹或X500 DN。拇指印是优选的,因为它不太可能产生重复。此时,您可以在上面的示例中的'certificates'变量上使用'Find'来查找您的确切证书。 – vcsjones
他的评论早于我对答案的编辑之前,顺便说一句 - 可能对不同的上下文有不同的解读。不过,如果您一直在寻找与商店完全相同的证书 - 拇指指纹。 – Yushatak