一、什么是HTTP、HTTPS、TLS、SSL
术语解释:
HTTP(Hyper Text Transfer Protocol)超文本传输协议
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)超文本传输安全协议
SSL(Secure Socket Layer)安全套接字协议层
TLS(Transport Layer Security)传输层安全性协议,其前身为SSL
HTTP也称作HTTP over TLS。TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。
下图描述了在TCP/IP协议栈中TLS(各子协议)和HTTP的关系
二、HTTP和HTTPS协议的区别
1、HTTPS协议需要到证书颁发机构(Certificate Authority,简称CA)申请证书,一般免费证书很少,需要交费。
2、HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。
3、HTTP和HTTPS使用的是完全不同的连接方式,使用的端口也不一样,前者是80,后者是443。
4、HTTP的连接很简单,是无状态的。
5、HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。
从上面可看出,HTTPS和HTTP协议相比提供了
· 数据完整性:内容传输经过完整性校验
· 数据隐私性:内容经过对称加密,每个连接生成一个唯一的加密密钥
· 身份认证:第三方无法伪造服务端(客户端)身份
其中,数据完整性和隐私性由TLS Record Protocol保证,身份认证由TLS Handshaking Protocols实现。
三、证书
1、什么是证书呢?
2、证书中包含什么信息
证书信息:过期时间和序列号
所有者信息:姓名等
所有者公钥
3、为什么服务端要发送证书给客户端
互联网有太多的服务需要使用证书来验证身份,以至于客户端(操作系统或浏览器等)无法内置所有证书,需要通过服务端将证书发送给客户端。
4、客户端为什么要验证接收到的证书
中间人攻击