【网络&通信协议系列(三)】HTTPS实现原理

概述

HTTPS=HTTP+TLS,HTTP全称超文本传输协议,是基于TCP的无状态协议,通信是以明文的形式,是现阶段互联网中广泛采取的通信协议。因为通信报文使用明文形式,所以会存在安全性问题,为了解决安全性问题,便引入了对HTTP进行SSL加密的方式,经过演变最终形成了现在的HTTPS通信协议。

实现原理

通过非对称加密握手建立连接,然后使用对称加密通信。

说到HTTPS就不能不提CA,也就是颁发证书的机构。所有广域网通信的HTTPS证书都需要前往权威机构申请,大部分都是收费的,完全免费并且浏览器信任的也有,推荐Let’s Encrypt。

一次HTTPS请求建立连接的过程:

  1. 主流浏览器都会预置CA的根证书
  2. 当请求一个HTTPS站点时,会从服务器获取证书,证书中包含颁发者机构、拥有者、过期时间等信息
  3. 浏览器会校验当前证书是否为可信任,如果不可信(如自签证书),提示用户当前证书不合法
  4. 浏览器会生成一个随机串使用证书中携带的公钥加密,返回给服务器
  5. 服务器获取到加密内容,使用私钥解密,获取随机串,此随机串会被用作后序的通信报文加密的固定秘钥
  6. 服务端需要发送内容到客户端,会使用固定秘钥将报文加密然后发给客户端
  7. 客户端获取到内容,使用相同的秘钥对加密内容进行解密,获取内容
  8. 客户端后序所有的请求都会经过固定秘钥加密,服务器使用秘钥解密。

过程图示(图片来源于网络):
HTTPS连接建立过程

附录

如何从Let’s Encrypt申请HTTPS证书

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值