我目前有一个应用程序需要验证证书是否受特定CA信任。我遇到的问题是,问题证书实际上可能属于与我想要验证的CA交叉认证的根CA.所以我想确保我正确地构建了一个链到交叉认证的根ca 。下面是一个信任链可能是什么样子的例子。
1) Root CA1 -> Inter CA1 -> John Doe Signed Cert
2) Bridge CA Root -> X-Cert Root CA1 -> Inter CA1 -> John Doe Signed Cert
上述两个证书链都有效,但我想确保我建立了第2号链。
X509Certificate2 johnDoeCert = GetJohnDoeCert();
var chain = new X509Chain();
chain.Build(johnDoeCert);
chain.ChainElements[chain.ChainElements.Count - 1]; // I want to ensure this is Bridge CA Root
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
您需要做的是检查您了解目标证书的信息,在本例中为Bridge CA Root
您可以检查证书上的颁发者名称,如下所示:
string bridgeCAIssuerName = "CN=Bridge Root CA, OU=PKI..."; //Fill in with correct information
if(ch.ChainElements[ch.ChainElements.Count - 1].Certificate.IssueName.Name == bridgeCAIssuerName)
{
//This happens if it was true
}
您可以使用相同的技术检查证书的指纹或序列。