如何检查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:这是解决这个问题的正确方法吗。我不能测试它,因为老师不能给我证书来测试它。但我仍然需要这个东西才能正常工作。
这样的东西就足够了:
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"