HTTPS-概述
一、什么是https
https是为了解决http的安全问题,在http和tcp中间加了一层SSL/TSL安全层,加密通信,防窃取、篡改
二、https传输流程
- TCP三次握手之后,进行SSL/TLS握手
- 客户端发送hello,告知服务端自己支持的SSL协议版本、支持的加密算法和一个随机数
- 服务端确认客户端的hello,并发送serverHello,告诉客户端要用的SSL版本、加密算法、自己的CA数字证书(包含非对称加密的公钥和一系列CA验证字段,保证数字证书不能被中间人劫持伪造)和一个随机数
- 客户端收到服务端的serverHello后,通过操作系统拿到CA证书的公钥解密服务端的CA证书,获取到服务器的公钥(非对称加密的公钥),客户端生成一个新的密钥(对称加密)并通过服务器的公钥(非对称加密的)加密后发送给服务端
- 服务端收到密钥(对称加密)后,用自己的私钥(非对称加密)解密获得密钥(对称加密)
- 此后双方都通过密钥(对称加密)对通信加密即可