HTTP 与 HTTPS 的核心区别
HTTP: 明文传输,数据在网络中"裸奔",极易被窃听和篡改。
HTTPS: 引入了 SSL/TLS 加密层,通过复杂的混合加密机制保障数据传输的绝对安全。
CA 证书的签发与验证
HTTPS 安全的核心在于解决"如何证明服务器身份"的问题,防止中间人冒充。这就需要 CA(权威证书颁发机构)的介入。
服务器申请签名: 服务端将自己的域名、企业认证信息以及自身的公钥整合打包,提交给 CA 机构。CA 机构在审核通过后,会使用 CA 自己的私钥对这些内容进行加密,生成"CA 签名"(即数字证书),交还给服务端。 服务端将带有 CA 签名的包发送给客户端。客户端通过操作系统提前内置好的(或自身代码内置的)权威 CA 机构公钥,对签名进行解密操作。(此时如果中间人尝试伪造,用 CA 公钥解开了包,但由于没有 CA 的私钥,无法生成合法签名)解密成功后,客户端就安全、可信地提取出了里面的核心内容:服务端真正的公钥。而后客户端在本地生成一把用于后续通信的对称密钥,(为什么用对称密钥而不用非对称密钥:非对称密钥的解密耗时太久,效率太低)而后其使用刚刚获取的服务端公钥,将这把对称密钥加密,并发送给服务端。(此时中间人截获了数据,由于没有服务端的私钥,也根本无法解密)。服务端收到密文后,用自己的私钥解密,顺利获取到客户端发来的对称密钥。而后,双方都拥有了同一把对称密钥,后续所有的业务往来都使用这把对称密钥进行高速加密通话,让中间人无从下手。(但这只是单向认证)