这里验证服务器是否合法是指:访问的目标服务器是否就是所要访问的服务器
- 1.目标服务器的host+公钥进行hash,然后用证书机构给的私钥进行签名。
- 2.将host+公钥+签名打包(三个加起来就是证书)发给访问者。
- 3.浏览器拿到证书后将host+公钥也做一次hash。
- 4.浏览器拿本地目标服务器的根证书(证书机构在系统构建时就保存的一系列地址证书)的公钥对签名进行解密获取hash;
- 5.比对两个hash;
- 6.比对证书中的host和所要访问的服务器的host;
若5跟6都一致则验证成功。
若要用其它服务器对访问进行拦截,只需将其它服务器的根证书放在访问者的电脑中,这样就能在验证证书时让浏览器以为访问的服务器就是要要访问的目标服务器。