HTTPS:
简单来说,HTTPS就是HTTP协议上再加一层加密处理的SSL协议,即HTTP安全版。相比HTTP,HTTPS可以保证内容在传输过程中不会被第三方查看、及时发现被第三方篡改的传输内容、防止身份冒充,从而更有效的保证网络数据的安全。
HTTPS客户端与服务端交互过程:
- Https是基于tcp协议的,客户端先会和服务端发起链接建立
- 客户端第一次请求时,服务器会返回一个包含公钥的数字证书(包括公钥Spub,颁发机构,有效期等信息)给客户端
- 客户端拿到证书可以通过浏览器内置的根证书(内含C.pub)验证其合法性
- 客户端生成对称加密密钥并用其得到的公钥对其加密后返回给服务器
- 服务器使用自己私钥对接收到的加密数据解密,得到对称加密密钥并保存
- 双方通过对称加密的数据进行传输
根证书怎么保证签发的证书是有安全有效的
- 服务器会预先生成非对称加密密钥,私钥S.pri自己保留;而公钥S.pub则发给CA机构进行签名认证
- CA也会预先生成一非对称加密密钥,其私钥C.pri用来对服务器的公钥S.pub进行签名生成CA证书
- CA机构会把签名生成的CA证书返回给服务器,也就是刚才服务端给客户端那个证书
- 因为CA(证书颁发机构)比较权威,所以很多浏览器会内置包含它公钥(C.pub)的证书,称之为根证书。然后可以使用根证书来验证其颁发证书的合法性了