首页 > 解决方案 > 数字证书的验证是否需要远程调用?

问题描述

我有几个关于数字证书的问题:

1)据我了解,客户端能够验证服务器数字证书,因为客户端在其机器上包含一组众所周知的 CA 自签名证书。这是否足以完成整个验证,或者客户端是否需要对实际 CA(无论它位于何处)进行一些额外的远程调用?我阅读了一些关于证书吊销(CRL 和 OCSP)的内容,这似乎表明远程调用在某些时候是必要的。

2)验证服务器证书时,客户端究竟发生了什么?我一直对自己解释说,基于服务器证书中的 CA,客户端在其机器上找到相应的 CA 自签名证书,并使用其中的公钥解密服务器证书中的签名(因此没有远程调用这里)。据我了解,解密结果是服务器公钥的摘要。因此,客户端对服务器证书中的公钥进行哈希处理,以将其与上一步的摘要相匹配。如果两者都匹配,则一切正常,客户端和服务器可以交换对称密钥以进行进一步通信。那是对的吗?

标签: sslcertificatecertificate-authority

解决方案


1) 从技术上讲,不,不需要远程调用。当然,它比这要复杂一些——如果您使用的是 OCSP,那么是的,您将需要访问 OCSP 服务器并且它必须是远程调用。如果您使用 CRL,则需要进行远程调用以从证书中的 CRL 分发点 [CDP] 获取 CRL;但是如果 CRL 是在本地获取和缓存的,并且没有过期,那么证书检查都是本地的。

2)您是对的,客户端“链接到受信任的根”;执行了更多检查,包括密钥使用、日期范围检查,以及如您所述,验证证书的签名。最后的检查是确保根在客户端可用。

我希望这会有所帮助。


推荐阅读