Https传输过程

第一次HTTP请求

  1. 客户端向服务器发起HTTPS请求,连接到服务器的443端口
  2. 服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。
  3. 服务器将自己的公钥发送给客户端
  4. 客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分
  5. 然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此HTTPS中的第一次HTTP请求结束

第二次HTTP请求

  1. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器
  2. 服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文
  3. 然后服务器将加密后的密文发送给客户端
  4. 客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成

整个过程

客户端->发起请求->服务器下发公钥->客户端验证公钥->客户端生成随机值用公钥加密并回传服务器->服务器用私钥解密得到随机值->用随机值对称加密内容回传客户端->客户端用之前生成随机值解密

中间人

客户端->发起请求->中间人给客户端下发公钥,信任ca,同时中间人向服务器发起请求->服务器下发公钥到中间人->中间人产生随机值用公钥加密给服务端->服务端用随机值加密回传->中间人再作为客户端的服务端回传数据

    客户端<->中间人<->服务端

  转载请注明: And Lau Https传输过程

 上一篇
Android应用卡顿 Android应用卡顿
应用卡顿内存泄露 Generation Heap Memory,三种类型的内存区域,Young Generation,Old Generation,Permanent Generation,如果内存泄露随着时间的推移,会进入Permanen
2018-11-04
下一篇 
MongoDB学习记录 MongoDB学习记录
MongoDB $equals 等于 $gt 大于 $gte 大于等于 $lt 小余 $lte 小余等于 $ne 不等于 $in 在数组中 $nin 不在数组中 概念 SQL术语/概念 MongoDB术语/概念 解释/说
2017-09-30
  目录