(一)HTTPS是如何建立连接的?
1.首先,客户端向服务器端发送请求报文,请求与服务端建立连接。
2.服务端产生一对公私钥,然后将自己的公钥发送给CA机构,CA机构也有一对公私钥,然后CA机构使用自己的私钥将服务端发送过来的公钥进行加密,产生一个CA数字证书。
3.服务端响应客户端的请求,将CA机构生成的数字证书发送给客户端。
4.客户端将服务端发送过来的数字证书进行解析(因为浏览器产商跟CA机构有合作,所以浏览器中已经保存了大部分CA机构的密钥,用于对服务端发送过来的数字证书进行解密),验证这个数字证书是否合法,如果不合法,会发送一个警告。如果合法,取出服务端生成的公钥。
5.客户端取出公钥并生成一个随机码key(其实就是对称加密中的密钥)
6.客户端将加密后的随机码key发送给服务端,作为接下来的对称加密的密钥
7.服务端接收到随机码key后,使用自己的私钥对它进行解密,然后获得到随机码key。
8.服务端使用随机码key对传输的数据进行加密,在传输加密后的内容给客户端
9.客户端使用自己生成的随机码key解密服务端发送过来的数据,之后,客户端和服务端通过对称加密传输数据,随机码Key作为传输的密钥。
(二)HTTP 与 HTTPS 的区别
HTTP 是明文传输,HTTPS 通过 SSL\TLS 进行了加密。
HTTP 的端口号是 80,HTTPS 是 443。
HTTPS 需要到 CA 申请证书。
HTTP 的连接简单,是无状态的; HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。