在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);
答案 0 :(得分:9)
啊哈。密钥存储标志应为Exportable 和持久化。
X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet