SSL协议,根证书为何要保存在客户端

1. 比较好奇,为什么客户端需要保存一个根证书

在SSL中,有客户端,服务器,CA认证中心(一个机构)

先要确定一个基调,客户端是完全信任 CA认证中心。CA认证中心给服务器发了个数字证书,CA认证中心表示信任服务器,那么最终,客户端从服务器下载了数字证书,去找CA认证中心校验(校验,CA认证中心是否信任服务器)。

客服端信任CA认证中心,CA认证中心信任服务器,那么客户端就信任服务器。那么这个就是一条信任链。

2. 以上是基本原理,具体实施起来就复杂一点

客户端认证流程:

(1)服务器生成一对密钥,私钥自己留着,公钥交给数字证书认证中心(CA)
(2)CA进行审核,并用CA自己的私钥对服务器提供的公钥进行签名生成数字证书
(3)在客户端建立连接时,客户端从服务器获取数字证书,用CA的公钥(根证书)对数字证书进行验证,比对一致,说明该数字证书确实是CA颁发的(得此结论有一个前提就是:客户端的CA公钥确实是CA的公钥,即该CA的公钥与CA对服务器提供的公钥进行签名的私钥确实是一对。),而CA又作为权威机构保证该公钥的确是服务器端提供的,从而可以确认该证书中的公钥确实是合法服务器端提供的。
为保证第3步中提到的前提条件,CA的公钥必须要安全地转交给客户端(CA根证书必须先安装在客户端),因此,CA的公钥一般来说由浏览器开发商内置在浏览器的内部。于是,该前提条件在各种信任机制上,基本保证成立。

3. 以上总结起来

CA认证中心有一个根证书,是信任链的起点,就是大家都相信CA认证中心。

客户端从CA认证中心下载这个根证书。

CA认证中心给了服务器一个数字证书。

客户端连接服务器的时候,下载这个数字证书。

数字证书不等于根证书。

猜你喜欢

转载自www.cnblogs.com/429512065qhq/p/12581941.html