C#在客户端验证数字证书(Certificate)

Posted Herzog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#在客户端验证数字证书(Certificate)相关的知识,希望对你有一定的参考价值。

  ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallback;//Init时执行,用于注册方法。

  public static bool CertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
  {
      Console.WriteLine(string.Format("Subject: {0}", certificate.Subject));
      Console.WriteLine(string.Format("Issuer: {0}", certificate.Issuer));
      return true;
  }

  在CertificateValidationCallback()方法中进行证书验证。方法参数certificate即为服务端发送过来的证书,可以根据证书中提供的信息进行验证,以确认进行Response的

服务端确实是自己要访问的那个。

  证书中包含证书的Issuer(签发机构),依次来判断该证书的可信性。

  证书的Subject(主题)中包含了主机的相关信息,以此判断该主机是否为目标主机。

  

  

以上是关于C#在客户端验证数字证书(Certificate)的主要内容,如果未能解决你的问题,请参考以下文章

SSL routines:tls_process_server_certificate:certificate verify failed:证书验证失败问题

SSL routines:tls_process_server_certificate:certificate verify failed:证书验证失败问题

加密解密*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证

C# X509Certificate2.Verify 无撤销测试

ssl certificate 是啥证书

Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationHandler 证书验证失败