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

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

在 Windows 环境中的 .NET 上,如果 .pfx/.p12 包含私钥,则可以通过以下方式以编程方式将其安装到证书存储中(其中 rawData 是一个字节数组,包含完整的 .pfx/. p12,公钥和私钥,password是.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 的私钥,但我正在寻找一种编程解决方案。

谢谢!

最佳答案

很抱歉这个回答不能解决您的问题。 Mono 不支持将私钥保存到证书存储区。 可以在中找到(高度)技术性的细节 this interesting discussion .

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

关于c# - 以编程方式将 pkcs12 的私钥安装到 Linux 上的 Mono Cert Store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921207/

相关文章:

c# - C# mvc 中的 IEnumerable<SelectListItem>

c# - 将具有相同行为的静态类分组

c - 服务数据库文件和 getservbyname_r() 函数

linux - 一个 Linux 工具,它会在我键入时显示错误,Visual Studio 风格

c# - VS2010 上的单声道?

c# - Azure函数队列触发器添加Nuget包

c# - 我如何使用 Mono C# 获取有关关注 Linux 的窗口的信息

f# - 在 Mono 下 fsharp 编译失败并出现 NuGet 错误

.net - Windows XP 和 7 之间发生了什么变化导致我的 Mono C# 应用程序崩溃?

c# - 使用 Dictionary 和 HashSet 的 GetHashCode 方法