C# 在已添加公钥之后,如何向X509Certificate2添加私钥?

C# 在已添加公钥之后,如何向X509Certificate2添加私钥?,c#,.net,certificate,rsa,x509,C#,.net,Certificate,Rsa,X509,我的步骤是: 使用公钥创建X509Certificate2: X509Certificate2 clientCertificate = new X509Certificate2("public key certificate blob as byte[]"); 如何将私钥blob加载到clientCertificate 看起来您无法仅使用.net framework工具导入RSA私钥 查看此线程。另请参见: 它包括一个指向Mono源代码的链接,可以读取PKCS#8/PEM文件并从中返回一个R

我的步骤是:

  • 使用公钥创建
    X509Certificate2

    X509Certificate2 clientCertificate = new X509Certificate2("public key certificate blob as byte[]");
    
  • 如何将私钥blob加载到
    clientCertificate


  • 看起来您无法仅使用.net framework工具导入RSA私钥

    查看此线程。

    另请参见:


    它包括一个指向Mono源代码的链接,可以读取PKCS#8/PEM文件并从中返回一个
    RSA
    实例。

    以防像我这样的人在搜索如何从PEM fil/私钥生成X509Certificate2时看到这篇老文章:

    Net 5.0框架对此有一种非常简化的方法:

    var certPem = File.ReadAllText("cert.pem");
    var eccPem = File.ReadAllText("ecc.pem");
    var cert = X509Certificate2.CreateFromPem(certPem, eccPem);
    

    (来源:)

    你有什么样的斑点?他们从哪里来?是吗?我的公钥是Base64格式的字符串。我将这个字符串转换为字节数组。私钥是公钥的非对称密钥。私钥的格式与公钥(Base64)相同,我想将其添加到我的X509CertificatedEsn中,但它不起作用。。。我猜密钥不是由CryptoServiceProvider提供的。我需要一个解决这个问题的总体方案。我的问题是-我正在使用WLAN配置,当我的用户配置无线配置文件时,他在一个文件中给我公钥,在另一个文件中给我私钥。顺便说一句-证书是RSA证书。但是当我执行下一行-csp.ImportCspBlob(privateKeyBlob),我有个例外…:(你能发布它吗?什么文件格式被用作私钥容器?我不能发布私钥:(.哦,不!我指的是异常文本!你写道:“但是当我执行下一行-csp.ImportCspBlob(privateKeyBlob);,我得到一个异常…:(”。你能发布异常详细信息吗?