如何从文件中加载 c# 中的 .pem 证书?

How can I load a .pem certificate in c# from file?

上下文

我有一个 pfx 证书文件。我可以使用以下代码将其成功加载到 X509Certificate2 class:

var path = "mycert.pfx"
var password = "mypassword";
var certificate = new X509Certificate2(path, password);

出于某些原因,我想使用 .pem 格式而不是二进制格式。所以我使用以下 OpenSSL 命令将 "mycert.pfx" 转换为 "mycert.pem":

pkcs12 -in mycert.pfx -out mycert.pem -nodes

问题

如何以与成功加载 mycert.pfx 类似的方式加载转换后的 mycert.pem?下面的代码给我一个 CryptographicException 说 "Cannot find the requested object." (注意:这不是关于找不到文件的 io 异常)

var path = "mycert.pem"
var password = "mypassword";
var certificate = new X509Certificate2(path, password);

Windows 不支持 PEM (Base64) 格式的 PKCS#12。您必须仅使用二进制编码的 PKCS#12 文件。