HTTPS传输流程:
来源:2-11 HTTP和HTTPS的区别
慕粉1890165
2023-12-11
是这个流程吗?
1.在客户端与服务端进行第一次握手的时候,web浏览器会将自己支持的加密算法发给服务器。
2.服务器选出加密算法以证书的形式发给浏览器。证书包含:CA机构,有效期,公钥,证书所有者,签名。
3.浏览器收到证书后验证合法性,合法后,会随机生成一个密码。
4.浏览器使用约定好的加密算法将握手消息加密生成A,再用前面随机生成的密码加密握手消息生成B,并用证书中的公钥加密随机密码生成C。把A B C 发给服务器。
5.服务器收到加密的消息,用私钥解密C,获取随机密码。
6.服务器用随机密码解析B,再与A比较,如果一致,服务器会使用这个随机密码再加密新的握手信息,以及用约定好的加密算法加密新的握手信息,发给浏览器。
7.浏览器解密,验证握手消息。
8.浏览器和服务器用这个随机密码和约定加密算法交换数据。
2回答
-
翔仔
2023-12-23
3次握手指的是TCP的三次握手;将‘握手消息加密’ 这个握手是在tcp连接建立之后。tcp连接建立后,建立ssl/tls需要以下步骤:
1.客户端发起https请求,服务端返回数字证书和公钥,服务端保留私钥(同时发送tls版本和支持的加密算法);
2.客户端收到相应后,对数字证书进行校验,通过的话本地生成一个随机数,这个随机数就是以后传输内容对称加密使用到的密钥,然后用公钥加密后发送给服务端;
3.服务端接收后用自己的私钥进行非对称解密,拿到客户端的随机数;
4.服务端将双方协定的对称密钥和加密算法发送给客户端,至此tls建立连接。
握手消息指的是这里的随机数,http的三次握手,加上这四步TLS连接建立,https的建立需要七步
00 -
翔仔
2023-12-12
同学说的是对的。但是要注意客户端与服务端握手这个概念的区分:TLS/SSL协议是在TCP协议之上,建立TCP连接的三次握手四次挥手是没有任何变化,TCP连接进行同学说的TLS连接建立,之后再根据HTTP规则进行数据传输
042023-12-22
相似问题