X509Certificate2具有不可导出的私钥?

6
在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个回答

11

啊哈。关键的存储标志应该是Exportable并且持久化。

X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet

2
应该是X509KeyStorageFlags.PersistKeySet吗?我似乎找不到X509KeyStorageFlags.Persisted! - caveman_dick
@caveman_dick,我也这么认为;PersistKeySet 对我很有效。谢谢你!这节省了我大量的时间。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接