CA证书签发:
服务端在使用HTTPS前,需要向CA机构申领⼀份数字证书,数字证书里含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书中获取公钥即可,证书就如身份证,证明服务端公钥的权威性
证书可以理解成是⼀个结构化的字符串,包含了以下信息:证书发布机构、证书有效期、公钥、证书所有者、数据签名
注意:申请证书时,需要在特定平台生成,会同时生成一对密钥对,即公钥和私钥。这对密钥对用来在网络通信中进行明文加密以及数字签名
其中公钥需随着CSR文件,一起发给CA进行权威认证,私钥服务端自行保留,用来后续进行通信(即用来交换对称秘钥)
HTTPS⼯作过程中涉及到的密钥有三组:
- 第一组(非对称加密):用于校验证书是否被篡改,服务器持有私钥(私钥在形成CSR文件与申请证书时获得),客户端持有公钥(操作系统中包含了可信任的CA认证机构有哪些,同时持有对应的公钥)。服务器在响应客户端请求时,返回携带签名的证书,客户端通过这个公钥进行证书验证,保证证书的合法性,进⼀步保证证书中携带的服务端公钥权威性
- 第⼆组(非对称加密):用于协商生成对称加密的密钥。客户端用收到的CA证书中的公钥(可被信任的)给随机生成的对称加密的密钥加密,传输给服务器,服务器通过私钥解密获取到对称加密密钥
- 第三组(对称加密):客户端和服务器后续传输的数据都通过这个对称密钥加密解密。
内容来源于网络收集。