C# 以编程方式从特定CA(如Verisign)在线验证X509认证

C# 以编程方式从特定CA(如Verisign)在线验证X509认证,c#,ssl,x509certificate,x509certificate2,ca,C#,Ssl,X509certificate,X509certificate2,Ca,我想获得X509Certificate2认证并访问在线CA,检查它是否正确。。。我注意到C#中的代码做了类似的事情,但我不知道它如何在线访问,以及它访问哪个CA。代码如下: X509Chain chain = new X509Chain(); X509ChainPolicy chainPolicy = new X509ChainPolicy() { RevocationMode = X509RevocationMode.Online, RevocationFlag = X509R

我想获得X509Certificate2认证并访问在线CA,检查它是否正确。。。我注意到C#中的代码做了类似的事情,但我不知道它如何在线访问,以及它访问哪个CA。代码如下:

X509Chain chain = new X509Chain();
X509ChainPolicy chainPolicy = new X509ChainPolicy()
{
    RevocationMode = X509RevocationMode.Online,
    RevocationFlag = X509RevocationFlag.EntireChain
};
chain.ChainPolicy = chainPolicy;
if (!chain.Build(x509))
{
    foreach (X509ChainElement chainElement in chain.ChainElements)
    {
        foreach (X509ChainStatus chainStatus in chainElement.ChainElementStatus)
        {
            Console.WriteLine(chainStatus.StatusInformation);
        }
    }
    return false;
}
else { return true; }

您是否可以在foreach中查找类似于
chainElement.Certificate==verisignCert
的内容?我的意思是我想从本地商店获取证书,并在Version的数据库中在线检查它,然后返回它是否有效。。。。。也许黑客在我的商店里放置了一个错误的证书,所以我需要一个验证的方法。如果黑客可以在你的本地机器商店中放置一些东西,那么他也可以改变/绕过你的验证机制。是的,你是对的,但是如果我们认为,如果黑客已经控制了你的服务器,验证机制就从我的观点被保护了。那它就不再是你的服务器了。没有保护:)