CA简介
CA中心基于X.509公钥证书格式标准,为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。
CA原理概述
在X.509里,组织机构通过发起证书签名请求(CSR)来得到一份签名的证书。
首先需要生成一对密钥对,然后用其中的私钥对CSR进行签名,并安全地保存私钥。CSR包含请求发起者的身份信息、用来验证CSR请求的公钥以及所请求证书专有名称。CSR里还可能带有CA要求的其它有关身份证明的信息。然后CA对这个专有名称发布一份证书,并绑定一个CA机构的公钥.
CA组织机构可以把受信的根证书分发给所有的成员,各个成员使用根证书验证CA机构颁发的其他实体证书。
一、注册证书流程如下:
-
用户特定算法产生密钥对。
-
用户生成CSR文件,发送至CA注册中心。
-
CA注册中心验证用户身份,构建用户证书。
ca-register-flow.png
二、证书签发
1. CSR数据:包括签发人(Issuer)、地址、签发时间、有效期 等,还包括证书持有者(Owner)基本信息,比如 DN(DNS Name,即证书生效的域名)、用户公钥等信息。
2. 使用通用的 Hash 算法(如SHA-256)对证书元数据计算生成 数字摘要。
3. 使用CA机构的私钥对该数字摘要进行加密,生成一个加密的数字摘要,也就是Issuer,即CA的数字签名。
4. 将数字签名附加到数字证书上,变成一个签过名的数字证书。
5. 将签过名的数字证书与 Issuer 的公钥,一同发给证书使用者(注意,将公钥主动发给使用者是一个形象的说法,只是为了表达使用者最终获取到了 Issuer 的公钥)
三、证书验证
1. 解析证书,获得身份信息、CA注册中心的签名以及签名信息。
2. 使用同样的Hash算法计算证书的数字摘要。
3. 使用CA的公钥(通过证书链获取)对数字签名进行解密,得到解密后的数字摘要。
4. 对比2 和3两个步骤得到的数字摘要值,如果相同,则说明这个数字证书确实是被验证过合法证书,证书中的信息(最主要的是用户的公钥是)可信的。
当一个用户A收到另一个用户B的证书后,通过解析用户B的证书,获得一条形如图1的证书链。根证书一般是默认安装在用户的系统中。
证书链
证书链(也就是RFC 5280里的证书路径)是从终端用户证书后跟着一系列的CA证书,而通常最后一个是自签名证书,并且有如下关系:
l 在证书链上除最后一个证书(根证书)外,证书颁发者等于其后一个证书的主题。
l 除了最后一个证书,每个证书都是由其后的一个证书签名的。
l 最后的证书是自签名的根证书,有权威机构分发至各个成员,无条件信任。
x509-chain.png












网友评论