如何获取X509Certificate证书的指纹?

问题描述 投票:0回答:2

为了在客户端验证它从服务器接收到的证书,验证方法有一个类型为 X509Certificate 的参数,即服务器证书。

当我调试时,我可以看到它有一个 Thumbprint 属性,但是当我尝试以 myCertificate.Thmbprint 的方式访问它们时,我得到一个编译器错误,它说该属性不存在。

但是,类型 X509Certificate2 具有此属性。

那么我怎样才能让指纹知道它是否是预期的证书?

谢谢。

c# x509certificate
2个回答
0
投票

听起来您所处的环境中您拥有

X509Certificate
而不是更强大的
X509Certificate2
证书。

您的两个简单选择:

  1. 向上。 (
    X509Certificate2 myCertificate2 = (X509Certificate2)myCertificate;
    )
  2. 使用
    GetCertHash()
    GetCertHashString()
    方法(取决于您想要字节还是十六进制字符串)。
    GetCertHashString()
    Thumbprint
    属性相同。

0
投票

您可以使用 ServicePointManager 类来检查提供的远程证书并进行任何您喜欢的比较。您可以选择接受或拒绝。

ServicePointManager.ServerCertificateValidationCallback

© www.soinside.com 2019 - 2024. All rights reserved.