truststore 是纯粹的 Java 术语吗?

Is truststore a pure Java terminology?

当我在 YouTube 上搜索“truststore”时,我得到了以下视频作为第一个点击。大约 Java.

https://www.youtube.com/watch?v=Ur9LlNOYnRg

一个 Google 搜索也主要是 returns Java 个网页。

这是纯粹的Java概念吗?如何在不使用 Java 的情况下在 SSL/TLS 的上下文中进行解释?

请注意,证书不仅仅用于 SSL/TLS,而且 Java 在实施 SSL/TLS 前将近十年就将其用于代码签名,尽管在'deployment' 的翻页(即自动从各处下载代码并 运行 它)。此外,虽然 Java 'could just make a wrapper on C code'(特别是因为 JVM,没有它 Java 并不真正存在,都是 C 和 C++),但他们没有; SSL/TLS(标准 = Sun-now-Oracle 或 OpenJDK)Java 提供的实现,称为 JSSE(Java 安全套接字扩展),是用 Java 编写的。它使用的密码原语是使用 JCA 访问的,Java 密码体系结构,并且在 大多数 案例中也在 Java 中实现,尽管 JCA 提供者 可以使用'native'代码(C或C++)或外部硬件(PKCS11设备)。 (但是,Apache Tomcat,以及基于它的 TTBOMK 东西,如 Jboss Wildfly,有一个 'native' 选项,JSSE 的 而不是 使用 APR,Apache Portable Runtime,它又使用 OpenSSL,即 C.)

也就是说,任何依赖于 PKI 的任何实现,包括但不限于 SSL/TLS,通常使用并需要存储(或以其他方式永久持有)受信任的 CA 证书的东西——有时仅限于根证书,有时称为 'root' 证书,即使它们实际上不是根证书——但我不知道除了 Java 之外还有什么特别称呼此 'truststore'.

NSS 有一个 'certificate database' 通常(?)由 'module' 支持,Microsoft 有一个 set of 'certificate stores' 其中只有一部分是 'trusted',Apple 有一个 'KeyChain'(尽管我发现了一个 few cases,他们 将其描述为信任存储)。 S/MIME 模式下的 GnuPG 有一个 'keybox' 和一个关联但独立的 'trustlist' (而在 PGP 模式下,它有一个 'keyring' 和 'trustdb'). OpenSSL(以及使用它的东西)可以有一个 'CA file' and/or 'CA directory (or path)';某些使用 OpenSSL 的东西将 CA 文件称为 'CA bundle'、'CA list' 或 'root list'.

FWIW,即 "Common CA Database" project,Mozilla 试图协调维护几乎重复 lists/stores 个 CA 的几个程序,将它们描述为 'Root Stores' 或 'Root Store Operators',尽管它明确允许(并且经常要求)数据库包含中间 CA,即 not 根。死气沉沉