CA证书的内容
×××××××××××××××证书内容开始×××××××××××××××××
Issuer : 证书颁布机构(SecureTrust CA)
Subject : 证书持有者
Valid from : 证书有效期起始日期
Valid to: 证书有效期结束日期
Public Key : 证书公钥
Signature algorithm :该证书签名所使用的算法(加密算法)
…… 其它的一些证书内容……
{指纹和指纹算法}[SecureTrust CA的私钥|RSA] //"SecureTrust CA"对这个证书的一个数字签名
×××××××××××××××证书内容结束×××××××××××××××××
解释一下,对证书的数字签名:
1、 对证书内容进行一个hash运算(运算得出的结果称为指纹,运算方法称为指纹算法)
2、 将指纹和指纹算法,使用证书颁发者根证书的私钥和加密算法进行加密,加密后的内容就是该证书的数字签名
客户端拿到服务器发送过来的CA证书后,怎么校验该证书是可信的
1、 首先读取证书里的Issuer(证书颁发机构),去本地操作系统中受信任的证书发布机构中找,有没有该机构,如果找不到,表示该证书不可信,程序会给出错误信息;
2、 如果找到该证书颁布机构,则从该证书中读取公钥;
3、 使用根证书的公钥,和该证书的签名算法,解密该证书的数字签名,得到该证书的指纹和指纹算法
4、 使用指纹算法,再次计算整个证书内容的指纹,和原始的指纹进行比对,比对一致则表示该证书是可信的,比对不一致则表示该证书有问题