Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法导入X509 v3证书_C#_.net_Ssl_X509 - Fatal编程技术网

C# 无法导入X509 v3证书

C# 无法导入X509 v3证书,c#,.net,ssl,x509,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 {

我需要验证以纯文本形式提供给我的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;
        }
    }
我收到一条异常消息,消息是此行找不到Requested对象:

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-----

我尝试了从text/bytes/file/etc创建证书的不同方法,但它们都在同一点上失败。

当我交换证书和私钥部分时,问题似乎是按顺序出现的-一切都很顺利


UPD:C无法从PEM文件中导入私钥,因此他将忽略此部分,但它要求证书部分是文件中的第一个部分。

Hum,那么您从哪里获得此未通过即时验证的证书文本格式?在记事本中编辑证书似乎有些不同寻常。@kennyzx我从我的客户那里得到了它,他说openssl工具以这种形式生成了它。在这里有一个详细的解释,您可能会发现它很有用。应该阅读并理解它,但也有现成的代码。OpenSSL的工作人员进行了非标准扩展,因此需要非标准解决方案。