【发布时间】:2020-01-30 01:48:36
【问题描述】:
我在 Linux 机器上有一个 .crt 证书和一个 .key 私钥文件。私钥采用加密的 PKCS#8 格式(BEGIN ENCRYPTED PRIVATE KEY...)。我想将这些导入到 X509Certificate2 对象中以供进一步使用。由于我们使用的是 Linux,因此我们使用的是 .NET Core 2.2(我们还不能迁移到 3.0)。
我已经探索了一些可能的解决方案,详细如下:
- 使用
openssl将文件转换为 .pfx 并使用 X509Certificate2 导入该文件- 我不想使用此选项,因为我不想在 C# 中执行 shell 代码。我希望在 C# 中完全以编程方式实现该解决方案。
- 使用 C# BouncyCastle 库执行以下任一操作:
- 将证书和密钥都转换为 .pfx(如上),或
- 分别导入证书和私钥,使用
X509Certificate2.CopyWithPrivateKey()组合。 - 但是,我找不到 C# 版本的 BouncyCastle 的 API,所以我不确定我可以使用哪些方法来执行此操作。
- 我在这里缺少的 C# 中的其他一些编程方法
本质上,最终目标是从 .crt 和 .key 文件中获取 X509Certificate2 对象。任何有关使用哪种方法的帮助/见解,甚至是指向有用的 BouncyCastle 文档的指针,都将不胜感激。谢谢!
【问题讨论】:
-
提供的导入方法似乎不允许仅处理证书和私钥。他们要么只接受证书,要么只接受证书、密码和 KeyStorageFlags,这都不适合我的用例。
-
看来你可以只设置属性:docs.microsoft.com/en-us/dotnet/api/…
标签: c# bouncycastle x509