https实际上是在应用层(http)和传输层(tcp)之间加了一层安全套接层(ssl).
https原理:
客户端发送Https请求
服务端收到请求并配置CA证书(包含公钥和私钥)
服务端发送证书给客户端(包含颁发机构、过期时间)
客户端拿到证书并进行解析(由TLS验证证书有效性)
验证无误后,生成随机数并加密,传回给服务端
服务端解密随机值,把响应内容通过私钥进行对称加密,传输给客户端
客户端通过证书解密,获取服务端响应内容
ssl握手过程
客户端给服务器端发送:协议版本、客户端支持的加密算法、一个随机数1。
服务器端选择加密算法,并向客户端发送一个数字证书和一个随机数2。
客户端使用数字证书中的公钥,将随机数3加密发送给服务器。
服务器使用私钥对随机数字3解密,用加密方法计算生成对称加密的密钥给客户端
服务器端和客户端通过事先协商好的加密算法,对这三个随机数进行加密生成“对话秘钥”(session key)即对称加密的秘钥,用于接下来整个对话过程的加密。