参考资料
https://jaq.alibaba.com/community/art/show?articleid=545
一、什么是Https
Https是安全的超文本传输协议
Http使用的端口是80,默认情况下传输的数据是明文的,可以被抓包工具抓取到数据。
Https使用端口443,传输的数据是进行过加密的
Https是分为两部分Http+SSL/TCP,使用这种协议传输数据可以对数据进行加密,保证了数据的安全性。相当于是Http的安全版。在数据传输前需要和服务器进行一次握手(机密协议的确认和验证)
二、Https的传输分为以下几个步骤:
1.客户端将自己所支持的加密算法发送个服务端。
2.服务从中选择一套加密算法,把自己的地址,证书颁发机构,公钥等信息加密成证书。
3.客户端拿到证书后,开始进行解密验证,如果验证通过(证书是否过期,信息是否属实等)则生成一个随机数,这个随机数会被公钥进行一次加密,发送给服务端。(这部分是在客户端的TLS层进行的)
4.服务端拿到信息后用进行解密(因为这段随机值是由服务端颁发的证书进行加密的),校验一致后,把里面的随机值(私钥)解析出来,然后将要传输的数据用这个私钥进行对称加密,发送给客户端
5.客户端因为知道私钥,所以可以解密,如果解密成功,则握手结束,以后客户端和服务端进行校验都会用这个私钥加密进行数据的传输
什么是SSL加密协议
它是利用加密技术的
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
以上的内容来自百度。