HTTPS简单了解
个人理解:
HTTPS的实现其应用层还是HTTP的协议,但是在应用层和传输层之间增加了SSL/TLS协议来保证HTTP的安全。
SSL/TLS协议
- SSL: Secure Socket Layer 安全套接字层
- TLS: Transport Layer Security 传输层安全

SSL协议和TLS协议都是位于应用层和传输层之间的协议,他们可以通过认证、数字签名等保证客户端/服务器的正确性,通过加密的方式保证数据的可靠性。
SSL (Secure Socket Layer)
SSL协议提供的服务主要有:
- 认证用户和服务器,确保数据发送的是正确的客户端和服务器,通过CA证书实现
- 加密数据、防止数据被中途窃取,通过RSA非对称加密,以及对称加密实现
- 维护数据的完整性,防止在传输过程中被改变
TLS (Transport Layer Security)
TLS可以看作是SSL3.0的升级版,升级包括:
- 更安全的算法
- 更严密的警报
HTTPS协议
HTTPS协议实际上就是运行在SSL/TLS协议之上的HTTP协议,简单看是通过SSL/TLS进行服务器客户端的认证、数据加密保证了HTTP的安全。
HTTPS协议的数据交换流程

- 客户端发起HTTPS请求
- 在服务器端进行响应的配置
- server生成响应的证书(包含了server公钥)
- 这个时候服务器包含了 server私钥
- 服务器将证书相应给客户端
- 客户端验证证书的有效性
- 如果无效,展示warning
- 如果有效,生成client RSA公钥(非对称加密)、client会话密钥(对称加密)
- 此时客户端含有 server公钥、client私钥、client会话密钥
- 客户端将 server 公钥(RSA client公钥、client会话密钥) 传送到服务器端
- 服务器使用server私钥解密得到client公钥、client会话密钥
- 服务器生成随机的服务器会话密钥
- 此时服务器有 server私钥、client公钥、client会话密钥、server会话密钥
- 服务器将 client公钥(server会话密钥)传送给客户端
- 客户端通过client私钥解析到server会话密钥
- 此时客户端有 server公钥、client私钥、server会话密钥、client会话密钥
- 客户端向服务器发送 client会话密钥(HTTP数据)
- 服务器解析,并response,server会话密钥(HTTP数据)
上面的server公钥(RSA公钥)类似的表示,意思是: 将RSA公钥使用server公钥进行加密传输
参考文章
[1]. SSL与TLS的区别以及介绍
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ongeno's Blog!




