X509Certificate2有私钥不可导出?

时间:2010-11-16 20:12:14

标签: c# .net security ssl-certificate x509certificate

在Win Server 2008上,我可以执行下面的代码,当我尝试通过MMC GUI导出证书时,我也没有选择导出私钥的选项。但是,如果我使用GUI导入证书,我也可以导出私钥。我的代码中缺少什么?

string certfile = @"mycert.p12";
SecureString secString = new SecureString();
foreach (char c in "password")
{
    secString.AppendChar(c);
}

X509Certificate2 cert = new X509Certificate2(certfile, secString, X509KeyStorageFlags.Exportable);
var store = new X509Store(StoreName.My , StoreLocation.CurrentUser);
store.Add(cert);

1 个答案:

答案 0 :(得分:9)

啊哈。密钥存储标志应为Exportable 持久化。

X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet