首先我们来回顾一下https的原理,首先我们看图:
第一步、客户端发送请求,服务器将证书发送给客户端,证书的本质是第三方CA的私钥加密的内容,其内容是服务器的公钥。
第二步、客户端接收到证书后,用操作系统和浏览器内置的CA公钥去匹配验证证书,如果能解密,说明请求的是目标网站,不是中间人。
第三步、用CA公钥解密证书,并将服务器公钥解密出来。到这一步,客户端安全的拿到了服务器端的公钥。
第四步、生成随机数,用服务器公钥加密随机数发送到服务器端。
第五步、服务器端用服务器私钥解密信息,得到随机数
我们仔细阅读上面的流程,我们将客户端和服务器端用到的工具分一下类:
客户端用到的如下:
1、CA机构的公钥:已经内置到系统中不需要处理
2、公钥证书:服务器端发送给客户端的,客户端会自动用CA公钥解密证书
3、服务器公钥:客户端用CA公钥解密证书获得
4、随机数生成对称秘钥:自动生成