如何使用友好名称而不是指纹获取 X509Certificate?

use*_*018 4 c# x509certificate

我有一个带有友好名称的证书,我想使用友好名称而不是指纹来获取证书。我没有看到任何类似的方法FindByFriendlyName...,如何做到这一点?

在此处输入图片说明

 var thumbprint ="f454......"
 var friendlyName = "ASP.NET Core...."    

 X509Certificate2Collection signingCerts = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);
            X509Certificate2Enumerator enumerator = signingCerts.GetEnumerator();
Run Code Online (Sandbox Code Playgroud)

Cry*_*t32 5

内置搜索只能针对静态字段进行,对于任何给定的证书,这些字段永远不会改变。友好名称不是静态的,可以为任何单个证书无限次更改。因此,我强烈建议不要依赖证书友好名称。曾经。

您可以通过枚举所有证书并检查匹配的证书来进行手动过滤,但这是非常糟糕和脆弱的方式。

  • 这似乎有点极端。实际上,除非有人更改,否则友好名称不会更改,这种情况很少见,并且可能表明证书上的权限过于宽松。 (3认同)