【问题标题】:How do you verify a certificate chains to a specific CA?您如何验证特定 CA 的证书链?
【发布时间】:2012-03-19 05:40:24
【问题描述】:

我目前有一个应用程序需要验证证书是否受特定 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

感谢任何帮助。

谢谢!

【问题讨论】:

    标签: .net x509certificate certificate pki x509certificate2


    【解决方案1】:

    您需要做的是根据您所知道的有关目标证书的信息检查信息,在本例中为 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
    }
    

    您可以使用相同的技术来检查证书的指纹或序列号。

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 2021-12-18
      • 2021-01-09
      • 2017-11-06
      • 1970-01-01
      • 2018-06-30
      相关资源
      最近更新 更多