我正在尝试从 .NET 标准库中的 PEM 文件加载 X509Certificate2。
我使用 openssl 创建了一个自签名证书,如下所示:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj /CN=localhost -days 365
Run Code Online (Sandbox Code Playgroud)
我将生成的 PEM 文件加载到项目中的嵌入字符串资源中,并尝试使用以下代码加载它们:
private X509Certificate2 GetCertificate()
{
try
{
byte[] pubPem = System.Text.Encoding.UTF8.GetBytes(Properties.Resources.DefaultPublicPem.Trim());
var cert = new X509Certificate2(pubPem);
var rsa = GetRSAFromPem(Properties.Resources.DefaultPrivatePem.Trim());
cert.PrivateKey = rsa;
return cert;
}
catch (Exception ex)
{
// ignore errors
return null;
}
}
public static RSA GetRSAFromPem(String pemstr)
{
RSA rsaKey = RSA.Create();
Func<RSA, RsaKeyParameters, RSA> MakePublicRCSP = (RSA rcsp, RsaKeyParameters …Run Code Online (Sandbox Code Playgroud)