20

我正在尝试实例化一个X509Certificate对象,但我一直遇到相同CryptographicException的错误消息:

“找不到原始签名者”。

我尝试了几种加载证书的方法:

// some different things that I have tried
var cert = X509Certificate.CreateFromCertFile(certFileName);
var cert2 = new X509Certificate(byteArray);
var cert3 = new X509Certificate(byteArray, secretString);
var cert4 = X509Certificate.CreateFromSignedFile(certFileName);

我尝试过从文件和字节数组加载。每次我得到同样的错误。这可能是什么原因造成的?

4

2 回答 2

17

我解决了这个问题。我试图仅加载不包含私钥的证书文件。为了解决这个问题,我必须在购买证书的机器上安装私钥,然后将其导出为 .pfx 文件并将其移动到我真正想要使用它的位置。我敢肯定是新手的错误。希望我的愚蠢问题将来能帮助其他新手。

于 2013-10-09T13:13:15.617 回答
3
        var collection = new X509Certificate2Collection();
        collection.Import(byteArray);
        return collection;

通过https://stackoverflow.com/a/44073265,由https://stackoverflow.com/users/6535399为 msft 编写加密 - 例如https://github.com/dotnet/corefx/pull/25920

于 2018-02-08T03:45:35.137 回答