【问题标题】:Truststore in TLS connectionTLS 连接中的信任库
【发布时间】:2022-07-08 17:56:10
【问题描述】:
根据 TLS 连接定义,例如作为客户端,我使用 keystore 来存储我的私钥和证书,并使用 truststore 来存储某些类型的证书。在称为 Youtube 的服务器端,它有一个名为 Youtube.pem 的根证书,由 Google.crt CA 签名。
我知道信任库是在握手期间验证第 3 方证书
我的问题是我的信任库应该在握手期间实际存储什么?
- Youtube.pem(第三部分发送的 CA 签名证书)
- Google.crt(CA 证书)
【问题讨论】:
标签:
ssl
ssl-certificate
tls1.2
mtls
【解决方案1】:
根据 TLS 连接定义,例如作为客户端,我使用 keystore 来存储我的私钥和证书,并使用 truststore 来存储某些类型的证书。
是的,但如果您想使用客户端身份验证,您只需要一个密钥库。请注意,“keystore”和“truststore”表示如何使用存储,它们可以是相同的类型(例如 PKCS#12),甚至可以是相同的文件。
在称为 Youtube 的服务器端,它有一个名为 Youtube.pem 的根证书,由 Google.crt CA 签名。
不,YouTube 是一项服务,它有一个叶子或最终实体证书。根证书是第三方 CA 的证书。最终实体证书通常由中间 CA 证书签名,然后由自签名根证书签名。
我知道信任库是在握手期间验证第 3 方证书
它用于验证和验证从叶证书到信任库中信任锚的信任路径。信任锚通常是存储在您的信任库中的根证书之一。叶证书由最终实体/服务器指示,中间证书通常也由服务器发送,但也可以从缓存中检索。
对于 YouTube,使用 Google 根 CA,如果信任存储中不存在 Google 根,则可能通过链接证书使用 GlobalSign 根。
因此,您的信任库应包含 Google 根证书或 GlobalSign 根,以便在此示例中进行连接。