在网上看了些这两个的实现原理就过程,把自己的理解重新编写一遍。
http的请求过程:
1、TCP建立连接后,客户端会发送报文给服务端;
2、服务端接收报文并作出响应;
3、客户端收到响应后解析给用户;
https的请求过程:
1、客户端发送请求到服务端;
2、服务器返回证书(公钥);
3、客户端验证证书(公钥)的有效性,如果有效,则生成对称密钥并使用公钥加密发送到服务端;
3-1: 客户端验证证书内容有效性(过期时间, 域名是否相同等)
3-2: 验证证书的有效性 (是否被串改), 通过本地根证书的CA公钥解密数字摘要,看是否匹配。
3-3: 如果数字签名验证通过, 就可以使用服务器证书里面提供的公钥进行下一步通信。
4、服务端使用私钥解密报文获取对称秘钥,并使用对称密钥加密网页内容,发送到客户端;
5、客户端使用对称密钥解密报文;
6、SSL加密建立。