验证证书的方法:根据证书中的指纹计算算法计算指纹,用电脑上存储的CA公钥解密签名得到证书中存的指纹,比较两个结果是否相同。
浏览器收到证书并验证后,双方开始协商对称加密的算法,对称加密使用的密码由浏览器生成,并用网站公钥加密,发给服务器。服务器得到加密后的密码,用自己的私钥解密得到真实的密码。这就保证了即使别人copy了一份服务器的证书,也无法正常通信,因为不知道私钥。
那么Fiddler抓包是怎么获取HTTPS加密的数据呢?它装了一个根证书,是怎么发挥作用的呢?参考了:/p/da56ecc本质上就是fiddler做代理,并安装了自己的CA根证书。代理的意思是,对客户端来说,他就是服务器,对服务器来说,他就是客户端,它会假冒自己是客户端和服务器通信,当服务器要发给客户端证书时,fiddler根据收到的真证书现场伪造一个假证书,伪造的证书中公钥变成了它自己的公钥,对指纹进行签名的私钥变成了自己的假CA根证书对应的私钥。把这个证书发给客户端,这样客户端验证证书不会发现问题,同时客户端发送的对称加密密码fiddler用自己的私钥也能解密。fiddler收到后,先解密信息,再用服务器真正的公钥加密,发给服务器。