https ssl 使用到非对称加密 + 对称加密 保证通讯数据安全性
目的:通过非对称加密的方式把对客户端称加密的秘钥安全的发送给服务端。
非对称加密需要用到服务端的证书里的公钥,那么就要校验服务端证书的合法性
客户端在收到服务端证书之后如何校验
服务端证书都是需要向权威CA机构申请的,CA机构的根证书会提前嵌入浏览器(根证书在校服务端验证书合法性会用到)
证书内的要素(部分)
CA机构的名称
证书的数字签名
:CA机构通过自己的私钥非对称加密证书的指纹和指纹算法得来的
指纹及指纹算法
:指纹 ==》通过使用指纹算法hash证书内容得来的
公钥
Subject(证书持有者
签名算法
浏览器收到服务端的证书,先通过证书内的CA机构的名称查询到该CA机构的根证书。
然后通过根证书中的公钥解密证书的数字签名得到指纹(CA机构颁发证书的时候通过指纹算法计算得来的h1)和指纹算法.
然后通过指纹算法对当前证书的内容进行计算得到h2,h2和h1比较,以确保证书没有被篡改。
有人说假如证书上的指纹是不法分子伪造的,伪造是没有用的,因为你伪造的指纹不可能用CA机构的根私钥去加密(根私钥是CA机构绝对保密的),伪造者只能拿自己的秘钥去加密这个伪造的指纹,但当我们拿机构的根公钥去解密伪造指纹的时候是不可能成功的(加密内容只能由一对公钥私钥解密)在证书没有被修改过的基础上,再检查证书上的使用者的URL(比如csdn.net)和我们请求的URL是否相等,如果相等,那么就可以证明当前浏览器链接的网址也是正确的,而不是一些钓鱼网之类的