理解有错误的地方,请高手指正!
1,CA中心,有一套自己的公钥和私钥,CA用自己的私钥去生成一个自认证的证书
2,CA中心的自认证证书是有公信力的,一般被客户端所熟知,发放到每个客户端!
3,客户端需要将CA中的自认证证书加入信任列表!4,服务器要加入CA体系,要向CA中心申请,CA中心验证了服务器的资料后,向服务器发放一个证书(key),里面包含了一个秘钥
5,CA发给服务器的签名证书是用CA自己的秘钥和申请者(服务器)的秘钥(key)加密过的,
6,证书里面包含:申请者的身份信息、申请者公钥,CA秘钥加密过的一些信息!
7,因为没有CA的秘钥,任何人,不能篡改此证书,(篡改后,解开是一团乱码)
8,任何人,用CA的自认证证书可以读取证书里面的身份信息
9,证书的普遍可读性和证书的不能更改性就由此体现
>>>问题1:既然不能篡改,为了伪造服务器,我可以复印一个服务器的签名证书,伪装成服务器!
客户端看到你的的证书,好,我就用你给我的证书,加密信息,把加密的信息传给你!你必须拿跟证书里面的公钥相匹配的秘钥才能解密,否则你看到的就是乱码!
你没有,所以你复印了也没用!
10,客户端只要信赖CA,就可以放心的和服务器进行交互了!
11,服务器需要验证客户端吗?这个是可选的,验证方法跟服务验证是类似的!
12,这里面的关系其实就是使用非对称加密技术:
CA中心生成自签名证书,里面暗含了CA中心的秘钥算法!
CA中心将服务器的签名证书加密,服务器拿到了使用这个签名证书秘钥和证书!同样CA发给服务器的签名证书也暗含了CA的秘钥算法!
CA发送给服务器的签名证书包含了服务器的一些信息,这些信息可以证明:我就是这个证书里面说明的服务器!
服务器器是无法修改证书信息的,因为客户端是用CA的自签名证书去解读服务器证书信息的,自签名证书暗含了CA的秘钥算法,服务器证书也暗含了CA的秘钥算法;
如果服务器更改了证书,那么客户端就无法使用CA的自签名证去读取服务器证书的信息内容了,客户端自然就无法信任此服务器,那么更改证书也就没有意义了!
由于除了CA之外,任何人无法修改服务器签名证书内容,因此,对于信任CA的权威性的客户端二样,签名证书同样具有权威性!