gpt4 book ai didi

c# - 来自文件的 ChainCertificate

转载 作者:行者123 更新时间:2023-11-30 17:43:33 24 4
gpt4 key购买 nike

我在证书验证方面遇到问题。我有 .perm 文件女巫是链证书文件(里面有多个 BEGIN 和 END CERTIFICATE)。

我尝试导入证书集合,但导入后集合的长度为 1。

X509Certificate2Collection collection = new X509Certificate2Collection();
collection.Import(certpath);

我在

中看不到任何有趣的选项
X509Chain chain2 = new X509Chain();

我收到验证返回错误,我认为原因是并非所有证书都已加载。

下面是我的完整验证方法

    private static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
try
{
string certpath = "actual path";

X509Certificate2Collection collection = new X509Certificate2Collection();
collection.Import(certpath);

X509Chain chain2 = new X509Chain();
foreach(X509Certificate2 c in collection)
{
chain2.ChainPolicy.ExtraStore.Add(c);
}

// Check all properties
chain2.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;

// This setup does not have revocation information
chain2.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck;

// Build the chain
chain2.Build(new X509Certificate2(certificate));

// Are there any failures from building the chain?
if (chain2.ChainStatus.Length == 0)
return true;

// If there is a status, verify the status is NoError
bool result = chain2.ChainStatus[0].Status == X509ChainStatusFlags.NoError;

return result;
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return false;
}

最佳答案

X509Certificate2CollectionImport 方法不支持包含多个证书的文件(一个接一个地附加)。请参阅此方法的文档 here .

有一种格式可能有效——SerializedStore,但文档对此没有太多说明。我假设它是 SerializedCert 的某个数组之王,它是具有它属性的证书,因此即使这种格式与您所拥有的也不匹配。

尝试分离证书并使用this constructor初始化 X509Certificate2Collection

关于c# - 来自文件的 ChainCertificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30750583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com