理想的,A用非对称加密生成 公钥1 和 私钥1 ,将 公钥1 传输给B,然后B用对称加密生成的 公钥2 对 公钥1 加密之后返回给A,那么A,B都有B生成的 公钥2 后就可以高速的对称加密传输
如果第一步也就是 公钥1 传给B是安全传到的,那么之后都是没问题的,问题是黑客可能在第一步就做手脚
问题就出在可信度上,所以 证书颁发机构 CA 出来了 (Certificate Authority) 颁发机构有自己的 公钥 和 私钥
将 第一步的公钥1、服务器地址、还有钱 给证书颁发机构,会拿到一个证书,里面有
- 服务器地址
- 是哪个证书颁发机构
- 通过颁发机构私钥加密后的 公钥1
- 通过颁发机构私钥加密后的 证书签名
那么假如黑客还想故技重施在 公钥1 上动手脚,它没有私钥进行加密( B 会对收到的钥匙通过证书颁发机构的公钥进行解密校验 )
证书签名包含了 服务器地址 + CA公钥KEY + 公钥1 ,从而防止黑客更改 服务器地址、哪个证书颁发机构
所以所有证书内容都不会被篡改
需要的操作
服务器:申请证书
客户端:访问时,使用 https://xxxx
https的默认端口是443
像没有证书或被篡改、或者证书颁发机构浏览器不认可时,浏览器就会报错“当前连接不安全”