以编程方式将pkcs12的私钥安装到Linux上的Mono Cert Store中

时间:2012-12-17 19:55:30

标签: c# linux mono private-key pkcs#12

在Windows环境中的.NET上,如果.pfx / .p12包含私钥,则可以通过以下方式以编程方式将其安装到证书存储区中(其中rawData是包含完整.pfx /的字节数组)。 p12,公钥和私钥,密码是.pfx / .p12的密码:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
X509Certificate2 certificate = new X509Certificate2(rawData, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();

我希望在Linux环境中对Mono做同样的事情。上面的代码适用于Windows,只能在Linux上安装证书的公钥而不是私钥。我已经能够使用Mono的certmgr实用程序手动安装.p12的私钥,但我正在寻找一种程序化的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:1)

很抱歉这个答案无法解决您的问题。 Mono不支持将私钥保存到证书库。 (高度)技术性的详细信息可以在中找到 this interesting discussion

在我的应用程序中,我最终将证书和私钥存储在数据库中,因为无论如何我的应用程序设计需要一种集中的证书存储。

相关问题