如何从crt和密钥文件创建X509Certificate2?

时间:2019-12-20 16:54:21

标签: c# .net-core x509certificate2

我正在尝试使用私钥创建X509Certificate2。要获取私钥,我要提供以下代码:

using System;
using System.Security.Cryptography;

namespace whats_new
{
    public static class RSATest
    {
        public static void Run(string keyFile)
        {
            using var rsa = RSA.Create();

            byte[] keyBytes = System.IO.File.ReadAllBytes(keyFile);
            rsa.ImportRSAPrivateKey(keyBytes, out int bytesRead);

            Console.WriteLine($"Read {bytesRead} bytes, {keyBytes.Length - bytesRead} extra byte(s) in file.");
            RSAParameters rsaParameters = rsa.ExportParameters(true);
            Console.WriteLine(BitConverter.ToString(rsaParameters.D));
        }
    }
}

我从Microsoft文档获得此代码:https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#cryptographic-key-importexport

但是在这一行中出现错误“ ASN1损坏的数据”:

rsa.ImportRSAPrivateKey(keyBytes, out int bytesRead);

我真正想做的是使用crt和key创建一个X509Certificate2证书,因为在我的gRPC服务中,我需要该证书同时具有。这是因为我已经使用OpenSsl创建了证书,所以我为证书生成了一个文件,为密钥生成了另一个文件。

谢谢。

0 个答案:

没有答案