02-HTTPS协议
- HTTPS协议工作流程
443 端口
- Client发起一个HTTPS(https:/demo.linianhui.dev)的
请求
,根据 RFC2818 的规定,Client知道需要连接Server的443
(默认)端口。 - Server把事先配置好的
公钥证书
(public key certificate)返回给客户端。 - Client
验证公钥证书
:比如是否在有效期内,证书的用途是不是匹配Client请求的站点,是不是在CRL吊销列表里面,它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书(操作系统内置的Root证书或者Client内置的Root证书)。如果验证通过则继续,不通过则显示警告信息。 - Client使用伪随机数生成器生成加密所使用的
会话密钥
,然后用证书的公钥加密这个会话密钥,发给Server。 - Server使用自己的
私钥(private key)解密
这个消息,得到会话密钥。至此,Client和Server双方都持有了相同的会话密钥。 - Server使用
会话密钥加密“明文内容A”
,发送给Client。 - Client使用
会话密钥解密响应的密文
,得到“明文内容A”。 - Client再次发起HTTPS的请求,使用会话密钥加密请求的“明文内容B”,然后Server使用会话密钥解密密文,得到“明文内容B”。
02-HTTPS协议
https://janycode.github.io/2017/04/28/04_网页技术/03_HTTP/02-HTTPS协议/