HTTPS
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS的安全基础是 SSL,因此加密的详细内容就需要 SSL。
SSL 证书
网站需要向特定的组织或服务商申请 SSL 证书。
包括一个 公钥 和 私钥。
其中 私钥 只有网站自己知道。
而 公钥 是公开的。例如:
网页版微信的 SSL 证书
网页版微信的 SSL 证书 中的公钥信息
HTTPS 工作流程
客户端发送 HTTPS 请求,例如
https://wx.qq.com/
服务端将 公钥证书 发送给客户端
客户端检查下 公钥 证书有没有问题,例如颁发机构,过期时间。
如果没有问题,生成一个随机值,我们称之为 会话密钥,例如 123,将该随机值通过 公钥 加密,发送给服务端。
(这样就算发送途中报文被其他人获取,也无法被破解,因为破解需要 私钥 信息,而 私钥 信息只保存在服务端)服务端收到报文后,通过 私钥 解密,得到该随机值 123,我们称之为 会话密钥。
随后,服务端想要给该客户端发送任何消息的时候,都将该消息通过该会话密钥 123 进行对称加密。
(什么是对称加密:即加密和解密用的是同一个密钥。
这样就算发送途中报文被其他人获取,也无法被破解,因为破解需要 该随机值 信息)客户端收到报文后,通过本地保存的会话密钥 123 解密,得到具体的内容。
客户端想要给服务端发送任何消息的时候,也是都将该消息通过该会话密钥 123 进行对称加密。
流程图如下:
引用自 https://www.cnblogs.com/linianhui/p/security-https-workflow.html
HTTPS 工作流程