首页 > 解决方案 > 如何使用 CA 证书 C# 验证证书链

问题描述

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

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

标签: c#cryptographycertificatepublic-key-encryption

解决方案


使用X509Chain该类并将ca.crt, 加载为X509Certificate2, 放到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);

推荐阅读