首先,我们了解一下数字证书
如图,数字证书 = 证书 + 数字签名
(1) Version,证书版本
(2) Serial Number,证书序列号
(3) Issuer,颁发证书的CA机构
(4) Validity,有效期,包含生效时间和失效时间,是一个时间区间
(5) Subject,申请证书的组织/公司信息
(6) Subject Public Key Info,公钥信息,包括公钥的加密算法和公钥内容
(7) Extensions,扩展信息
(8) Certificate Signature Algorithm,证书签名算法,包括对证书进行摘要的HASH算法(比如:MD5,SHA1,SHA256),使用私钥对摘要进行签名的加密算法(比如:RSA,DSA/DSS) 此项图中没有!
(9) Certificate Signature,证书签名
签名过程:首先使用HASH算法对证书的部分内容进行摘要,然后使用CA机构自己的私钥对摘要进行加密
客户端验证过程:首先使用HASH算法对证书的部分内容进行摘要,得到HASH值H1,然后使用该CA机构的公钥对签名进行解密,得到HASH值H2,如果HASH值相同,则验证通过
当然,客户端验证还包括有效期,证书持有者,颁发机构等校验。不过最重要的,还是数字签名的验证!
参考:
https://www.cnblogs.com/snowater/p/7804889.html
https://blog.51cto.com/11883699/2160032
https://www.jianshu.com/p/b0b6b88fe9fe
HTTPS相关:https://www.kuacg.com/22672.html