HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),是在HTTP协议基础上增加其安全性而产生的一个协议,在越来越重视安全性的今天,被广泛使用。
HTTPS相比HTTP多了一层SSL/TLS
SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2
上图为https的交互过程图,下面对其流程进行详细介绍。
- 客户端向服务器发出请求信息,
- 服务器收到信息后返回一个响应信息,其中包含SSL证书------证书中包含的内容有签发机构CA,有效期等证明证书真实性和有效性的信息,以及公钥;
- 客户端收到服务器发来的证书后,首先对其真实性进行验证,之后发送随机生成的对称加密算法和对称密钥,该信息用第二步收到的公钥进行加密;
- 服务器收到客户端的信息后用传来的对称加密方式加密一个响应信息并反馈给客户端;
- 客户端收到服务器的加密信息并用自己的对称加密方式验证正确后,证明此时客户端和服务器之间已经建立了一条加密的安全通道,之后就可以用该密钥进行信息的交互。