C# 通过编程区分自签名证书和CA签名证书-IIS绑定

C# 通过编程区分自签名证书和CA签名证书-IIS绑定,c#,iis,ssl,C#,Iis,Ssl,我理解,但我需要知道,当它们包含在IIS的绑定包中时,是否有办法区分这两者 场景 我为我的站点设置了两个https绑定,一个带有CA签名证书,X,另一个带有自签名证书,Y 在代码中,我可以访问绑定,这是IIS使用的ConcurrentBag。我希望能够使用对象的某些属性来区分哪个证书是自签名的,哪个是CA签名的 这有可能吗?从评论中可以看出@Mathias: 使用每个(适用)绑定的CertificateHash和CertificateStore属性来查找适当的证书,并比较证书的x509扩展中的主

我理解,但我需要知道,当它们包含在IIS的绑定包中时,是否有办法区分这两者

场景

我为我的站点设置了两个https绑定,一个带有
CA签名证书,X
,另一个带有
自签名证书,Y

在代码中,我可以访问绑定,这是IIS使用的
ConcurrentBag
。我希望能够使用对象的某些属性来区分哪个证书是自签名的,哪个是CA签名的


这有可能吗?

从评论中可以看出@Mathias:

使用每个(适用)绑定的CertificateHashCertificateStore属性来查找适当的证书,并比较证书的x509扩展中的主题权限密钥标识符


使用每个(适用的)
绑定的
CertificateHash
CertificateStore
属性来比较证书x509扩展中的主题和权限密钥标识符。如果配置正确(如添加到受信任的权限存储),则不容易自签名就像商业广告一样。但是如果你有一个发行人的白名单,那么在代码中你可以很容易地分辨出来。你应该接受这个答案并结束讨论。