c# - 无法导入 X509 v3 证书

标签 c# .net ssl x509

我需要验证以纯文本形式发送给我的 X509v3 证书,我正在尝试使用此代码:

public static bool Validate(string certText)
    {
        var bytes = new byte[certText.Length * sizeof(char)];
        Buffer.BlockCopy(certText.ToCharArray(), 0, bytes, 0, bytes.Length);
        try
        {
            var cert = new X509Certificate(bytes);
            var cert2 = new X509Certificate2(cert);
            return cert2.Verify();
        }
        catch(CryptographicException cex)
        {
            return false;
        }
    }

我在该行收到一条消息“无法找到请求的对象”的异常:

var cert = new X509Certificate(bytes);

这是我的证书:

Bag Attributes
    Microsoft Local Key set: <No Values>
    localKeyID: 01 00 00 00 
    friendlyName: le-cb9ddb3f-ae3b-49a3-8f44-f106f442974d
    Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider
Key Attributes
    X509v3 Key Usage: 10 
-----BEGIN PRIVATE KEY-----
*****
-----END PRIVATE KEY-----
Bag Attributes
    localKeyID: 01 00 00 00 
    friendlyName: xn--drmtteslger-z8ar8v_dk_2014-09-05
subject=/C=DK/postalCode=8920/L=Randers/street=Normansvej 1/O=DanDomain A/S/OU=Webshop/OU=Hosted by Dandomain A/S/OU=InstantSSL/CN=d\xC3\xB8rm\xC3\xA5ttes\xC3\xA6lger.dk
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO High-Assurance Secure Server CA
-----BEGIN CERTIFICATE-----
*****
-----END CERTIFICATE-----

我尝试了不同的方法从文本/字节/文件/等创建证书,但它们都在同一点失败。

最佳答案

当我交换证书和私钥部分时,看起来问题出在部分顺序上 - 一切都很顺利。

UPD:C#无法从PEM文件中导入私钥,所以他会简单地忽略这部分,但它要求证书部分是文件中的第一个。

关于c# - 无法导入 X509 v3 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25847401/

相关文章:

c# - UIA Automation 元素 GDI Target 应用程序过程中的泄漏

.net - BlockingCollection(Of T)的目的是什么

c# - 如何在 C# Windows 窗体中停止加载窗体

c# - 从 Action 中获取对象

c# - Visual Studio 应该或可以在 App-V 中运行吗?有什么影响?

c# - 使用 object.Equals 比较两个 float[] 数组元素是否相等

c# - 当鼠标聚焦在面板范围内时添加事件

android - 不使用 native_ssl 的 Android HTTPS 客户端

ruby-on-rails - Rails/Passenger/Nginx : Redirecting www. domain.com 到 domain.com(防止 SSL 警告)

ssl - 在 HAProxy 后面的 Nginx 集群中更新 SSL 证书的推荐方法是什么?