HTTP和HTTPS的区别
- HTTP:超文本传输协议,是一个客户端与服务器端请求和应答的标准(TCP),可以使浏览器更高效,信息是明文传输,无状态
- HTTPS:是以安全为目标的HTTP通道,在HTTP下加入SSL层
- HTTPS需要CA证书,贵!
- HTTP协议端口:80 HTTPS端口:443
HTTPS协议的工作原理
建立一个信息安全通道,来确保数据的传说,确保网站的真实性
- 客户端C 使用https url 访问服务器S ,要求与服务器S 建立SSL链接。
- 服务器S 接收到客户端C请求之后,会将网站的CA证书返回给客户端C [CA证书中含有公钥]
- 客户端C 通过CA证书验证服务器S 的合法性
- 服务器S 与客户端C 协商SSL链接的安全等级,也就是加密等级
- 客户端C 通过双方协议后的加密等级,建立会话密钥(对称密码),通过服务器S 的公钥加密会话密钥(对称密码),并将其传给服务器S
- 如果服务器S 需要验证客户端C 的身份,客户端C 给出一个自己的证书和一个随机数给服务器S ,服务器S 完成身份验证
- 服务器S 通过自己的私钥解密出会话密钥(对称密码)
- 服务器S 通过会话密钥(对称密码)加密与客户端C 之间的通讯
整体为一个对称加密算法(步骤8),但是为保证对称加密算法的安全性,协商过程使用非对称加密(步骤5-7),为保证非对称加密的安全性,使用CA证书
HTTPS协议的缺点
- 握手阶段比较费时,延长加载时间50%,增加10-20%的耗电
- HTTPS缓存不如HTTP高效,增加数据开销
- SSL证书需要钱
- SSL证书需要绑定IP,不能再同一个IP上绑定多个域名,IPV4不支持这种消耗