如何使用 CA 证书 C# 验证证书链

时间:2021-04-29 06:07:22

标签: c# cryptography certificate public-key-encryption

我正在尝试连接到 Mosquitto 代理。 代理将有一个 ca.crt 和一个 server.crt。我的应用程序将只有 ca.crt。

连接时,代理提供 ca.crt 和 server.crt(证书链)。 如何根据我已有的 ca.crt 验证两者? ca.crt 和客户端上的那个是一样的。

1 个答案:

答案 0 :(得分:1)

使用 X509Chain 类并将加载为 X509Certificate2ca.crt 放到 属性的 ExtraStore ChainPolicy 属性上。

var caCert = new X509Certificate2(".\\ca.crt");
var serverCert = new X509Certificate2(".\\server.crt");

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.ChainPolicy.ExtraStore = new X509Certificate2Collection(caCert);
ch.Build (serverCert);