HTTPS 建立安全通道过程及 HTTPS 的加密过程和获取加密密钥的过程,在 HTTPS 使用对称密钥发送报文时,安全通道已经建好
-
client 发起一个 HTTPS(例如:www.baidu.com/) 的请求,根据 RFC2818 的规定,Client 直到需要连接 Server 的 443(默认)端口
-
Server 把事先配置好的公钥证书返回给客户端
-
Client 验证公钥证书:比如是否在有效期内,证书的用途是不是匹配 Client 请求的站点,是不是在 CRL 吊销列表里面,它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书(操作系统内置的 Root 证书或者 Client 内置的 Root 证书)。如果验证通过则继续,不通过则显示警告信息
-
Client 使用伪随机数生成器生成加密所使用的对称密钥,然后用证书的公钥加密这个对称密钥,发送 Server
-
Server 使用自己的私钥解密这个消息,得到对称密钥。至此,Client 和 Server 双方都持有相同的对称密钥
-
Server 使用对称密钥加密'明文内容 A',发送给 Client
-
Client 使用对称密钥解密响应的密文,得到'明文内容 A'
-
Client 再次发起 HTTPS 的请求,使用对称密钥加密请求的'明文内容 B',然后 Server 使用对称密钥解密密文,得到'明文内容 B'
参考文章: