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(主题)中包含了主机的相关信息,以此判断该主机是否为目标主机。

  

  

时间: 2024-11-04 22:11:20

C#在客户端验证数字证书(Certificate)的相关文章

如何验证一张数字证书的合法性

数字证书是依赖根证书的信任传递机制的,所以验证一张数字证书的合法性,需要其上级证书参与进来进行验证. 除了根证书,每一张数字证书都包含了其上级证书对其的签名,也就是用上级证书的私钥对证书摘要(简记为H1)进行加密. 因此验证数字证书合法性的方法总结为:验证根证书是否为受信任的根证书,及其下面证书链上每一张数字证书解密后的证书摘要(H2)是否与证书内容计算得出的摘要(H1)一致. 数字证书解密后的证书摘要(H2)是使用上级证书的公钥来进行解密的. 在可能存在钓鱼网站窃取账号或担心存在SSL劫持的情

数字证书浅析以及如何验证证书的可信/合法性

转自http://www.cnblogs.com/hyddd/archive/2009/01/07/1371292.html 最近看会Session hijack的东西,劫持现在已经实现,yahoo等一些没有用Https协议的邮箱被成功地劫持了(迟下发文章),由于对Https不熟悉,所以看了一下为什么Https的会话不能劫持. 本文主要介绍的SSL中的涉及到的"数字证书"这个东东. 一.什么是数字证书? 数字证书是一种权威性的电子文档.它提供了一种在Internet上验证您身份的方式,

https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL

转自:https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL 因为项目中要用到TLS + SASL 来做安全认证层. 所以看了一些网上的资料, 这里做一个总结. 1. 首先推荐几个文章: 数字证书: http://www.cnblogs.com/hyddd/archive/2009/01/07/1371292.html 数字证书和SSL: http://www.2cto.com/Article/201203/121534.html 数字签名: http://www.

HTTPS中的对称密钥加密,公开密钥加密,数字证书

HTTPS中的对称密钥加密,公开密钥加密,数字证书 密钥 我们将未加密的内容称为明文,加密之后的内容称为密文. 简单来说,要加密一段明文,可以将这段内容输入到一个加密函数中,输出密文.但这种简单的加密方式存在被人盗取到加密函数从而破解明文的危险,且加密函数一般构成复杂,一旦被盗取更换成本较高. 于是人们想出了一个办法,在加密函数中再添加一个参数,这个参数只有通信双方知道,没有参数则无法正确解密出密码.这个参数被称为密钥.对于同一个加密函数而言,密钥值的不同则加密方式也不同,得出的密文也就不同.这

数字证书在WEB应用中登录

1数字证书登录认证的优点 作为企业信息系统的第一道大门,身份认证是确保企业信息资源只能被合法用户所访问的重要保障. 传统的口令认证方式虽然简单,但是由于其易受到窃听.重放等攻击的安全缺陷,使其已无法满足当前复杂网络环境下的安全认证需求. 传统账号+口令登录的弊端: 1.         口令易被猜测.由于有的用户为了方便记忆,使用非常简单的口令,比如"1234"."abcd"等这些非常容易被猜测的口令. 2.         口令易被窃听.大家都知道,WEB应用在互

关于数字证书理解的简单整理以及12306网站证书简单分析

首先简单理解一下什么是数字证书.这里是一篇英文文档,描述的很形象.形象的描述了什么是公钥,什么是私钥,如果确保数字证书的可靠性等. 下面,我们看一个应用"数字证书"的实例:https协议.这个协议主要用于网页加密. 一般我们电脑的浏览器中都有一些受信任的证书颁发机构列表, 里边存储的都是一些机构的信息.这些机构都是权威的.当然可以通过安装软件的方式,来增加证书颁发机构,比如中国银行的根证书软件,阿里巴巴的根证书软件.默认我们认为这些软件都是从官网下载的,是绝对的没被篡改的,可靠的.简单

数字证书的基础知识

在之前的<iOS开发者证书以及代码签名学习笔记>博文中介绍了iOS开发证书以及代码签名相关的知识点,为了更好理解其中证书的特性,这里对数字证书以及相关的知识进行了整理和总结. 在讲数字证书之前必须要讲非对称加算法和摘要算法,因为数字证书的基础就是各种加解密算法(非对称加密.摘要算法),而其中的核心就是非对称加密算法了.目前而言加密方法可以分为两大类.一类是单钥加密(private key cryptography)也可以称为对称加密,还有一类叫做双钥加密(public key cryptogr

数字签名 数字证书

数字签名原理简介(附数字证书) 首先要了解什么叫对称加密和非对称加密,消息摘要这些知识. 1. 非对称加密 在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密.同时,一般一个密钥加密,另一个密钥就可以解密. 因为公钥是公开的,如果用来解密,那么就很容易被不必要的人解密消息.因此,私钥也可以认为是个人身份的证明. 如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密. 2.消息摘要

数字签名和数字证书

参考链接: http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html https://blog.csdn.net/weixin_37887248/article/details/82805508 这里涉及到了非对称加密的原理,一般加密和解密过程使用的是不同的密钥:公钥和私钥 对要传输的内容,使用公钥加密的话,只能用私钥解密 对要传输的内容,使用私钥加密的话,则只能用公钥解密. 而常说的数字签名,就与以上的第2个