关于HTTPS请求和响应的流程

本文深入探讨了HTTPS请求和响应的流程,包括数字签名、数字证书的应用,以及以HTTPS为例的加密通信步骤。从客户端发起请求,服务器响应,再到证书验证和数据加密解密,每个环节都详细阐述,确保数据传输的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 数字签名+数字证书现的原理

1
将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。
在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。

2
将该发送方报文摘要值用发送方的私人密钥加密(即为数字签名),然后连同原报文和数字证书一起发送给接收者。

3
证书中心(CA)用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。
接收方收到消息后,使用CA的公钥解开数字证书,确定公钥是否真的属于此发送方,若是,则继续

4
接下来,接收方取下数字签名,使用发送方的公钥进行解密,获取发送方报文摘要值,如果获取失败,则说明此报文不是该发送方发出的;如果获取成功,则继续

5
接收方取下原报文,对原报文使用HASH算法得到接收方报文摘要值,与发送方报文摘要值相比较,如相等则说明报文未被修改过


  • 以HTTPS为例进行讲解

1
客户端向服务器发送HTTPS请求

2
服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

3
客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

4
如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告
如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告

5
如果数字证书是可靠的,那么就生成一个随机密码。然后用证书对该随机密码进行加密

接下来的两步为加密流程:

6
客户端向服务器请求到CA证书,得到证书后,会由公钥产生一段随机密码,由该随机密码加密我们客户端的请求,并且发送加密后的请求和加密随机密码(如果不加密,中间人获取到该随机密码后仍然可以破解我们的加密请求;使用服务端公钥加密该随机密码)。

7
服务器拿到我们加密请求与加密的随机密码,找到与公钥对应的私钥,对加密的随机密码进行解密,得到随机密码
使用随机密码对请求解密,进行业务逻辑处理

8
请求处理逻辑完毕,生成响应后,使用随机密码进行加密响应,返回到客户端
客户端最后再根据随机密码进行解密,即可获取响应的HTML内容。

总流程如下:
在这里插入图片描述

  • 参考

https://mp.weixin.qq.com/s/-sf8Jz-98pn_v4JmnS8WHg
https://www.jianshu.com/p/f2533fdbb731
https://blog.youkuaiyun.com/jwaccl/article/details/80953610

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值