首页 > 解决方案 > 加载 X509Certificate2 间歇性错误

问题描述

我们有一个 AWS lambda 函数,其中包含对第 3 方的调用,第 3 方请求需要用于身份验证的证书。我们目前将此证书存储在 S3 存储桶中并按需加载,但是,我们遇到了一个零星的问题,即在将证书加载到字节数组后,我们使用字节数组和证书实例化 X509Certificate2 对象密码,抛出以下异常:

错误:0D07809F:asn1 编码例程:ASN1_ITEM_EX_D2I:意外的 eoc

用于检索证书文件的违规代码:

var certFile = await new Amazon.S3.AmazonS3Client().GetObjectAsync(
                new GetObjectRequest
                {
                    BucketName = CertificatesS3BucketName,
                    Key = CertFilename
                }
                );
            var certStream = certFile.ResponseStream;

            var bytes = new byte[certFile.ContentLength];
            certStream.Read(bytes, 0, (int)certFile.ContentLength);

            return bytes;
            //EXCEPTION THROWN ON THIS LINE
            var certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(bytes, "CERT-PASSWORD");

以前有没有人遇到过这个问题,并且可能会因为它让我感到困惑而有所启发!它在 50% 的时间里工作,在另外 50% 的时间里抛出这个异常

标签: c#amazon-web-servicesx509certificate

解决方案


推荐阅读