清楚地识别Windows证书存储区中的证书

清楚地识别Windows证书存储区中的证书,第1张

概述清楚地识别Windows证书存储区中的证书

我正在开发一个库,它生成XML数据并签名生成的XML。 我已经安装了一个pkcs12证书(用pem文件中的OpenSSL生成)到windows证书库中。

我正在用C#代码加载证书

X509Store store = new X509Store(Storename.My,StoreLocation.CurrentUser); store.Open(OpenFlags.Readonly); X509Certificate2 cert = null; foreach (var item in store.Certificates) { if (item.Subjectname.name.Contains("CN=IDENTIFIER")) { cert = item; break; } } store.Close();

在我的情况下,CN标识符是:我的姓氏+姓氏。 证书来自第三方。 所以我觉得我对标识符没有影响。

问题在于:

访问冲突插入元素到全球地图

与cmake,icc和pthreads(linux)链接

从窗口应用程序开始,用于检索安装在远程PC上的软件和硬件列表

我如何获得作为一个整数在C中的Unix的时间戳?

如何在ring0中使用winAPI函数(内核模式)?

有没有什么办法从C#中确切地标识这个证书。 将来有可能多个证书具有相同的X509参数(CN等)。

先谢谢你。

c ++ boost asioasynchronous函数不会在dll中工作

dynamic链接器中的运行时cpu检测(ld.so)

windows套接字通知接收器

麻烦重新启动exe

getline()直到inputC ++结束

是的,CN可能包含相同的标识符(例如,当为企业实体颁发证书时)。

证书通常由以下组合之一来区分:1)颁发者名称(不是CN,而是RDN,具有多个字段的完整名称记录)+证书序列号(在一个CA内是唯一的)2)颁发者名称+证书哈希

如果您在搜索证书之前不知道颁发者名称,则可以向用户显示找到的证书列表,并且一旦他选择了一个证书,就存储证书散列以备将来参考。

在较小的系统(最终用户的计算机)上,MY商店中的证书数量通常很少,并且散列冲突的可能性很小。 在大型系统上,机会更高,这就是为什么使用Issuer名字的原因。

扩大尤金的答案

X509Store的Certificates属性是一个X509CertificateCollection 。

您可能会对其Find方法和X509FindType 。 它提供了许多方法来搜索证书。 严格地说, 主题DN和主题替代名称都应该重要,以识别与证书相关联的实体。 然而,从呈现的角度来看,很少有工具可以做到这一点(例如,这可能会在表格中非常混乱)。

正如GregS和Eugene指出的那样, 证书指纹(在其他工具中也被称为指纹/散列)将唯一标识特定的证书,而不管其颁发者。 它可以与X509FindType一起使用 。

指纹被用在windows / .Net / SSL世界的多个地方。 特别的, 这是选择一个安装在httpS端口上的指定证书的方法 。

总结

以上是内存溢出为你收集整理的清楚地识别Windows证书存储区中的证书全部内容,希望文章能够帮你解决清楚地识别Windows证书存储区中的证书所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存