[基础原理-计算机网络]https证书校验、SSL加密、三次握手四次挥手

一 https证书校验(以httpclient为例)

1 构造httpclient时,httpclient会加载jdk里面cacerts文件,cacerts文件包含上百个根证书,httpclient就是根据这些根证书校验服务端的证书。

[基础原理-计算机网络]https证书校验、SSL加密、三次握手四次挥手

2 根证书如何校验服务端证书:根证书和服务端证书的关系相当于,一个服务器的服务端证书和客户端证书的关系。根证书相当于私钥,服务端证书相当于公钥。

 

二 SSL加密

[基础原理-计算机网络]https证书校验、SSL加密、三次握手四次挥手

ssl握手过程分为5步:

1 客户端生成随机数clientRandom,以及支持的加密算法等

2 服务端生成serverRandom,公钥以及确定用哪个加密算法

3 客户端验证证书,生成第二个客户端随机数clientRandom2,并用public key加密

4 服务端用private key解密得到clientRandom2

5 后面客户端和服务端使用3个随机数进行对称加密

问题:

1 为啥后面用对称加密:非对称解密计算量太大,非对称加密的关键是私钥未暴露,这里的对称加密的session key也是未暴露的,因为第三个随机数是用公钥加密的,只有当前客户端和服务端知道。

 

三 三次握手和四次挥手

1 ack,seq,fin具体怎么发送我觉得不必要掌握得太详细。

2 为什么是3次握手:确认双方都能接受和发送数据。

3 为什么是4尺挥手:确认双方都没收数据发送并且都已经接受完数据。