目录
1. 验证证书链2. 证书有效期3. 证书吊销状态4. 证书域名匹配5. 证书签名验证6. 证书公钥使用
1. 证书链验证
证书链完整性
证书链通常由服务器证书、中间证书和根证书组成。客户端必须验证从服务器证书到受信任根证书的所有中间证书。每个证书必须正确链接到下一个证书,直到到达根证书。
服务器证书:由CA颁发,包含服务器的公钥、域名等信息。中间证书:连接服务器证书和根证书的桥梁。服务器通常提供一个或多个中间证书。根证书:由CA 自签名的证书,包含预安装在客户端操作系统或浏览器上的受信任根证书列表。
信任根证书
客户端必须信任证书链中的根证书。信任列表通常由操作系统或浏览器维护,并包含许多受信任的根证书。如果证书链中的根证书不在信任列表中,验证将失败。
2. 证书有效期
开始日期
服务器证书必须过期才能被客户端接受。如果当前日期早于证书的生效日期,验证将失败。
到期日期
服务器证书必须未过期才能被客户端接受。如果当前日期晚于证书到期日期,验证将失败。
3. 证书吊销状态
CRL(证书吊销列表)
CRL 是CA 颁发的所有已撤销证书的列表。客户端可以从CA检索CRL并检查服务器证书是否在列表中。
程序:
从证书的CRL 分发点字段获取CRL URL。下载CRL 文件。检查服务器证书是否在CRL 中。
OCSP(在线证书状态协议)
OCSP 提供了一种实时检查证书吊销状态的方法。客户端向OCSP服务器发送请求,查询证书的吊销状态。
程序:
从证书颁发机构信息访问字段获取OCSP URL。向OCSP 服务器发送请求。根据OCSP服务器的响应判断证书是否被吊销。
4. 证书的域名匹配
客户端必须保证服务器证书中的域名与所访问的服务器的域名一致。这可以通过检查证书的通用名称(CN) 和使用者备用名称(SAN) 字段来完成。
通配符证书
通配符证书允许多个子域共享同一个证书。例如,*.example.com 匹配sub.example.com 和another.sub.example.com。
完美搭配
证书的CN 或SAN 字段中的值必须与请求的域名完全匹配。例如,为www.example.com 请求的证书的CN 字段必须为www.example.com。
5. 证书的签名验证
签名算法
客户端必须检查证书中使用的签名算法是否安全。常见的安全签名算法包括SHA-256和SHA-3。 SHA-1 等旧算法不再被认为是安全的。
签名有效性
客户端使用CA的公钥来验证服务器证书签名。如果签名验证失败,则证书失效。
6. 证书的公钥用途
证书包括指定公钥用途的密钥用法和扩展密钥用法扩展字段。客户必须确保这些用途与其当前的使用场景相匹配。
常见用途
数字签名:用于验证数字签名。密钥加密:用于对称密钥加密。服务器身份验证:用于验证服务器的身份。
#客户端如何检查服务器SSL证书的有效性?相关内容来源网络仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91607.html