簡體   English   中英

如何檢查X509證書頒發者是否為Microsoft

[英]How to check if x509 certificate issuer is microsoft

因此,對於一個學校項目,我需要確定是否由Microsoft發行了提供的X509Certificate。 如果它是我必須返回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個受信任的Micorosft根證書。 “ CN = Microsoft根證書頒發機構”,“ CN = Microsoft根證書頒發機構”,“ CN = Microsoft根證書頒發機構2010”和“ CN = Microsoft根證書頒發機構2011”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM