读取 Ubuntu 中的 pfx 证书以创建 X509

Reading a pfx certificate in Ubuntu to create an X509

我是 运行 Ubuntu 中的 .NET Core 应用程序,并尝试使用以下内容连接到云 RavenDB 实例:

var bytes = File.ReadAllBytes("/etc/ssl/certs/foo.pfx");
var clientCert = new X509Certificate2(bytes, "foo");

var store = new DocumentStore
{
    Urls = new[] { "https://a.free.foo.ravendb.cloud" },
    Certificate = clientCert,
    Database = "FooDatabase"
};

store.Initialize();
builder.Services.AddSingleton<IDocumentStore>(store);

当应用程序启动时,我收到以下错误:

System.Security.Cryptography.CryptographicException:ASN1 损坏的数据。 ---> System.Formats.Asn1.AsnContentException: 编码长度超过了该库支持的最大长度 (Int32.MaxValue)。 在 System.Formats.Asn1.AsnDecoder.ReadLength(ReadOnlySpan1 source, AsnEncodingRules ruleSet, Int32& bytesConsumed) at System.Formats.Asn1.AsnDecoder.ReadEncodedValue(ReadOnlySpan1 源,AsnEncodingRules 规则集,Int32& contentOffset,Int32& contentLength,Int32& bytesConsumed) 在 Internal.Cryptography.Pal.UnixPkcs12Reader.ParsePkcs12(ReadOnlySpan`1 数据)

我是否需要以某种方式load/install将 pfx 文件上传到服务器?

看来我的问题是我的 pfx 文件不知何故损坏了。可能是由于我试图将其复制到服务器的方式。 re-uploading 我的 pfx 文件后,我可以使用以下内容:

var clientCert = new X509Certificate2("/etc/ssl/certs/foo.pfx");

您无需致电 ReadAllBytes