证书内容
证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名(CA私钥加密的摘要)和签名算法(CA私钥加密过)。
签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名;
证书的签发和认证
1:服务方 S 向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证;
2:CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;
3:如信息审核通过,CA 会向申请者签发认证文件-证书。
4:客户端 C 向服务器 S 发出请求时,S 返回证书文件;
5:首先在本地电脑寻找是否有这个服务器证书上的ca机构的根证书。如果有继续下一步,如果没有弹出警告。使用ca机构根证书的公钥对服务器证书的指纹和指纹算法进行解密。 得到指纹算法之后,拿着这个指纹算法对服务器证书的摘要进行计算得到指纹。
将计算出的指纹和从服务器证书中解密出的指纹对比看是否一样如果一样则通过认证。
6:客户端然后验证证书相关的域名信息、有效时间等信息;
7:客户端会内置信任 CA 的证书信息(包含公钥),如果CA不被信任,则找不到对应 CA 的证书,证书也会被判定非法。