https

一.HTTPS通信过程

  1. 客户端发送Client Hello报文,其中包含所使用的TLS版本,可用的加密和压缩算法。
  2. 服务器可以进行TLS通信时,发送Server Hello报文,其中包含服务器的TLS版本,选择的客户端发送的加密和压缩算法。
  3. 服务器还会发送数字证书认证机构(CA)签发的服务器公开证书,其中包含公开密钥,以及该证书所应用的域名范围(CN),用于客户端验证身份。
  4. 服务器发送Server Hello Done报文通知客户端,最初阶段的TLS握手协商部分结束。
  5. 客户端根据自己的信任CA列表,验证证书是否可信。若可信,客户端生成一串随机数,用服务器发送的证书中的公钥加密,发给服务器。(这串随机数用于生成对称密钥)
  6. 服务器端使用自己的私钥解密这串随机数,并根据这串随机数生成对称主密钥。
  7. 客户端发送finished报文。使用对称密钥加密这次通讯的一个散列值。
  8. 服务器端生成自己的 hash 值,然后解密客户端发送来的信息,检查这两个值是否对应。如果对应,就向客户端发送一个 Finished 消息,也使用协商好的对称密钥加密。
  9. 双方的finished报文交换完成后,TLS连接建立完成。接下来开始传输应用层内容。
    10.最后由客户端断开连接,发送close_notify报文。之后再发TCP FIN报文断开TCP连接。

二.证书机制

证书申请:

  1. 服务器把自己的公开密钥登录至CA
  2. CA用自己的私钥对服务器的公钥做数字签名,向服务器颁发公钥证书(包含服务器的公钥)。

客户端验证证书

依赖于证书信任链,即一个证书要依靠上一级证书来证明自己是可信的,最顶层的证书被称为根证书,拥有根证书的机构被称为根 CA。根证书一般是操作系统自带的。
对浏览器而言,浏览器当然也有选择信任某个根证书的权利。Chrome 浏览器一般是跟随系统根证书信任的。Firefox 浏览器通常是使用自带的一套证书信任机制,不受系统证书的影响。

参考:图解HTTP
https://hit-alibaba.github.io/interview/basic/network/HTTPS.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值