1. Client 发起一个 HTTPS 的请求,连接 443 端口,这个过程可以理解成是请求公钥的过程
2. Server 端收到请求后,通过第三方机构私钥加密,会把数字证书(也可以认为是公钥证书)发送给 Client
3. Client 验证公钥证书,比如是否在有效期内,证书的用途是不是匹配 Client 请求的站点,是不是在 CRL 吊销列表里面,它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书(操作系统内置的 Root 证书或者 Client 内置的 Root 证书),如果验证通过则继续,不通过则显示警告信息
4. Client 使用伪随机数生成器生成加密所使用的对称密钥,然后用证书的公钥加密这个对称密钥,发给 Server
5. Server 使用自己的私钥(private key)解密这个消息,得到对称密钥,至此,Client 和 Server 双方都持有了相同的对称密钥
6. Server 使用对称密钥加密明文内容 A,发送给 Client
7. Client 使用对称密钥解密响应的密文,得到明文内容 A
8. Client 再次发起 HTTPS 的请求,使用对称密钥加密请求的明文内容 B,然后 Server 使用对称密钥解密密文,得到明文内容 B
来自 <https://heptaluan.github.io/2020/08/09/HTTP/09/>
Http 协议个版本区别:
1.0 引入新增POST,DELETE,PUT,HEADER等方式
1.1 是目前的主流版本,最大的变化是增加了长连接。 在HTTP/1.1中默认开启 Connection: keep-alive,即TCP连接默认不关闭,可以被多个请求复用。
2.0 请求头压缩, 避免重复浪费。
标签:请求,证书,流程,Server,工作,Client,密钥,Https,对称 From: https://www.cnblogs.com/lifufu/p/17184201.html