https加密通信过程图解

https其实就是建构在SSL/TLS之上的 http协议,所以https比http要占用更多的资源
http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。http 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;https建立连接,耗费436毫秒。ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。

这里写图片描述

① 客户端发起HTTPS请求

 客户端或者浏览器向服务器发送https请求

② 服务器将公钥返回给客户端

HTTPS的服务器端都有一套证书,可以自己生成,可以向授信公司或者组织申请花钱购买,区别就是不花钱浏览会弹出来警告,添加信任或者例外就可以了。如何构建一个https服务可以参考另一篇博客:

http://blog.csdn.net/mzh1992/article/details/53764652

③ 浏览器接收到服务器公钥

浏览器收到公钥后会对公钥进行一系列的验证,如:颁发机构,过期时间等等。
认证失败会有警告,比如上面说的我们自己生成的证书,不是授信组织办法。
成功的话,会生成一个随机值作为对称加密的密钥稍后还会提及到。
用服务器返回的公钥对这个随机值进行加密

④ 加密后的随机值发送到服务器

服务器收到公钥加密后的随机值,会拿自己的私钥去解,解开之后得到的随机值

⑤ 客户端与服务器进行加密通信

客户端和服务器端信息数据通信,就是秘钥为随机值的,对称加密了
为什么要用对称加密呢,因为相对于非对称加密,对称加密对服务器的资源开销客户忽略不计。

一般采用https的都是,在公网传输的web请求,像分布式的局域网数据传输是没有必要的,只会加重服务器开销降低性能。
要想提高https的性能可以用nginx做负载均衡,或者购买ssl加速卡
nginx做负载均衡,可以参考:http://blog.csdn.net/mzh1992/article/details/53673571
  

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值