如何检查x509证书颁发者是否为微软

本文关键字:是否 微软 证书 x509 何检查 检查 | 更新日期: 2023-09-27 18:21:48

因此,对于学校项目,我需要了解所提供的X509证书是否由微软颁发。如果是,我必须返回true,否则我必须返回false。

这就是我现在得到的

private bool IsAcceptedCertificate(X509Certificate cert)
        {               
            try
            {
                //if microsoft
                if (cert.Issuer.Equals("Microsoft")) {
                    return true;
                }
            }
            catch (CryptographicException ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.ToString());
            }
            //if not microsoft
            return false;
        }

编辑1:这是解决这个问题的正确方法吗。我不能测试它,因为老师不能给我证书来测试它。但我仍然需要这个东西才能正常工作。

如何检查x509证书颁发者是否为微软

这样的东西就足够了:

private  bool IsAcceptedCertificate(X509Certificate2 cert)
{
    try
    {
        if(cert.Verify() && cert.Issuer.StartsWith("CN=Microsoft"))
        {
            return true;
        }
    }
    catch (CryptographicException ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.ToString());
    }
    //if not microsoft
    return false;
}

它检查证书是否有效,以及证书是否由"某些"Microsoft CA颁发。更具体地说,您可以检查所有Microsoft CA,而不是CN=Microsoft*

编辑:在Windows 10计算机上的受信任根证书颁发机构存储中,有4个受信任的Micorosoft根证书。"CN=Microsoft根证书颁发机构"、"CN=MicrosoftRootCertificateAuthority"、"CN=MicrosoftRootCertificationAuthority 2010"answers"CN=Microsoft.RootCertificateAuthority2011"