HTTPS
参考资料:
https://www.cnblogs.com/franson-2016/p/5530671.html
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
HTTP和HTTPS的区别
http协议,数据在网络传输是明文传输。
https协议,数据在网络传输是密文传输。
https由ssl和http协议进行网络上的加密传输
SSL
- 客户端向服务端发起请求,服务端返回证书,里面包含服务端的公钥
- 客户端验证证书的有效性,验证通过后,随机生成字符串用做验证加密,对称加密。
流程
- 客户端对服务端发起一个请求,服务端返回证书。
- 客户端验证证书的有效性(证书是否被信任,递归),验证后,客户端用公钥加密一个随机数,发给服务端
- 服务端收到后,用私钥进行解密,并将随机数用私钥加密回传。
- 客户端收到后,认为服务端是可靠的,此时用公钥加密一个随机串,发送到服务端,此随机串将作为对称加密的秘钥。
- 服务端收到后,后续的通信就可以使用该秘钥做对称加密了。
总结:先请求证书,验证证书,验证服务器是否有私钥,然后交换对称秘钥,最后使用对称秘钥加密通信。