当前位置:  开发笔记 > 编程语言 > 正文

如何检查证书是否自签名?

如何解决《如何检查证书是否自签名?》经验,为你挑选了1个好方法。

我正在使用C#.NET,需要在Windows证书库中安装一堆证书.

我需要检查哪些证书是根证书(即自签名),因此我可以将它们安装到"受信任的根证书"存储中.

我正在使用标准X509Certificate2课程.我现在的想法是,以检查是否IssuerSubject是相同的.

我注意到,X509Certificate2Issuer- IssuerNameSubject- SubjectName.

它是更好地对比IssuerSubject,或者IssuerNameSubjectName?或者它真的不重要吗?

此外,这是一种可靠的方法还是我会更好地使用另一种方法?



1> Rob..:

请参阅此文章:java - 查找证书是自签名还是CA签名

虽然它不是C#,但解决方案的评论指出

如果主题和发行者是相同的,则它是自签名的

意味着你对你试图验证它的方式是正确的.

IssuerNameSubjectName返回DistinguishedName包含RawData(byte[]包含发行者/主题的原始信息)的a.你最好比较这个领域,虽然我相信比较Subject并且Issuer同样有效.

所以,你可以这样写:

public static bool IsSelfSigned(X509Certificate2 cert)
{
    return cert.SubjectName.RawData.SequenceEqual(cert.IssuerName.RawData);
}

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有