有关 x509 证书的问题
//从证书文件载入证书,如果含有私钥的,需要提供保存证书时设置的密码
X509Certificate2 myX509Certificate2 = new X509Certificate2(
@"C:\Samples\PartnerAEncryptMsg\MyTestCert.pfx", //证书路径
"password", //证书的私钥保护密码
X509KeyStorageFlags.Exportable //表示此证书的私钥以后还可以导出
);
//新建指向当前用户,个人证书存贮区的X509Store对象
X509Store store = new X509Store(StoreName.My,StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
store.Add(myX509Certificate2);
store.Close();
请问我使用上述的代码导入 .pfx 证书文件到存储区,然后使用下述的代码取出证书中的私钥,为什么有异常?
//新建指向当前用户,个人证书存贮区的X509Store对象
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
//轮询存储区中的所有证书
foreach(X509Certificate2 myX509Certificate2 in store.Certificates)
{
//将证书的名称跟要导出的证书MyTestCert比较,找到要导出的证书
if (myX509Certificate2.Subject == "CN=MyTestCert")
{
string myX509Certificate2.PrivateKey.toXMLString(true); //这句出现异常
//不是有效的Key
}
}
store.Close();