在 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 的私钥,但我正在寻找一种编程解决方案。
谢谢!