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

  1. 客户端向服务端发起请求,服务端返回证书,里面包含服务端的公钥
  2. 客户端验证证书的有效性,验证通过后,随机生成字符串用做验证加密,对称加密。

流程

  1. 客户端对服务端发起一个请求,服务端返回证书。
  2. 客户端验证证书的有效性(证书是否被信任,递归),验证后,客户端用公钥加密一个随机数,发给服务端
  3. 服务端收到后,用私钥进行解密,并将随机数用私钥加密回传。
  4. 客户端收到后,认为服务端是可靠的,此时用公钥加密一个随机串,发送到服务端,此随机串将作为对称加密的秘钥。
  5. 服务端收到后,后续的通信就可以使用该秘钥做对称加密了。

总结:先请求证书,验证证书,验证服务器是否有私钥,然后交换对称秘钥,最后使用对称秘钥加密通信。