linux下https的链接过程

一、客户端向服务器发送链接请求,然后链接到服务端的443端口上面,发送的消息是随机值和客户端支持的加密方式

二、服务端收到请求后,通过客户端发过来的加密方式和服务器的私钥进行对比,如果不符合,会断开连接,如果符合服务端将证书发送给客户端

三、客户端验证服务端发送的证书,验证的内容有发布机构是否合法、过期,证书中包含的网址是否与当前访问网址一致等等。如果验证成功的话客户端会生成随机数,通过随机数来对证书进行加密。在通过证书中签名的hash算法取握手信息中的hash值,然后用生成的随机数将[握手信息和握手信息的hash值]进行加密,然后用公钥将随机数进行加密后,一起发送给服务端。其中计算握手信息的hash值,目的是为了保证传回到服务端的握手信息没有被篡改。

四、服务端通过私钥解密得到随机值,在去验证握手信息是否被篡改,如果验证无误,同样使用随机字符串加密握手信息和握手信息hash值发回给到客户端

五、客户端验证服务端发送回来的握手信息,完成握手 客户端收到服务端发送过来的握手信息后,用开始自己生成的随机数进行解密,验证被随机数加密的握手信息和握手信息hash值。 验证无误后,握手过程就完成了,从此服务端和客户端就开始用那串随机数进行对称加密通信了

猜你喜欢

转载自blog.csdn.net/m0_61344379/article/details/125259062