https中客户端对公钥证书的验证过程

4,621 阅读1分钟

公钥证书是什么

https在建立通信时首先会采用非对称加密的方式传输数据 (这里的传输数据一般是随机生成的key 这个key用于后续的对称加密) 服务端会生成一对秘钥, 公钥和私钥 公钥交给客户端 私钥留给服务端自己 客户端在拿到公钥后 如何确保拿到的公钥就是想要访问的服务端的公钥呢? 这时就需要有一个公认的权威机构来证明, 公钥是来自指定的服务端的公钥

认证机构的工作

认证机构会生成一对秘钥, 公钥和私钥 公钥证书的生成包括了两部分内容

  1. 数字签名
  2. 服务器公钥

其中数字签名的生成过程是:

  1. 服务器公钥 经过数字摘要算法 生成数字指纹
  2. 把生成的数字指纹 在用认证机构的私钥加密 生成数字签名

https中客户端验证公钥证书的过程

服务器将公钥证书发送给客户端 客户端验证公钥证书 从而确保公钥的合法性

  1. 客户端取出提前内置在手机内部的认证机构的公钥
  2. 用认证机构的公钥去解密公钥证书里的数字签名 从而得到数字指纹
  3. 客户端对公钥证书的服务器公钥进行 数字摘要算法 从而生成数字指纹
  4. 对比客户端自己生成的数字指纹(第3步)和解密得到的数字指纹(第2步)是否一致 如果一致则公钥证书验证通过 就可以进行接下来的握手步骤了