java - 信任库是纯 Java 术语吗?

标签 java ssl truststore

当我在 YouTube 上搜索“truststore”时,我首先获得了以下视频。它是关于 Java 的。
https://www.youtube.com/watch?v=Ur9LlNOYnRg
Google 搜索也主要返回 Java 网页。
这是一个纯粹的 Java 概念吗?在不使用 Java 的情况下如何在 SSL/TLS 的上下文中解释?

最佳答案

请注意,证书不仅仅用于 SSL/TLS,Java 在实现 SSL/TLS 之前几乎十年就使用它们进行代码签名,尽管在“部署”失败后(即自动从任何地方下载代码和运行)。此外,虽然 Java“可以只对 C 代码进行包装”(特别是因为 JVM,没有它,Java 并不真正存在,全是 C 和 C++),但他们没有;由(标准 = Sun-now-Oracle 或 OpenJDK)Java 提供的 SSL/TLS 实现,称为 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 证书的东西——有时仅限于根证书,有时称为“根” ' 证书,即使它们实际上不是根——但我不知道除了 Java 之外的任何东西,它专门称之为“信任库”。
NSS 有一个“证书数据库”,通常(?)由一个“模块”支持,Microsoft 有一组“证书存储”,其中只有一些是“受信任的”,Apple 有一个“KeyChain”(尽管我找到了 few cases 他们将其描述为信任库)。 S/MIME 模式下的 GnuPG 有一个“keybox”和一个关联但独立的“truSTList”(而在 PGP 模式下,它是 WoT,它有一个“keyring”和“trustdb”)。 OpenSSL(以及使用它的东西)可以有一个“CA 文件”和/或“CA 目录(或路径)”;一些使用 OpenSSL 的东西将 CA 文件称为“CA 包”、“CA 列表”或“根列表”。
FWIW,"Common CA Database" project ,Mozilla 尝试协调维护几乎重复的 CA 列表/存储的几个程序,将它们描述为“根存储”或“根存储运算符(operator)”,尽管它明确允许(并且经常要求)数据库包含中间 CA,即不是根。呸。

关于java - 信任库是纯 Java 术语吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70283280/

相关文章:

java - Hibernate - 如何使用仅指定单向子关系的注释级联删除

java - 更改 Java 默认信任库密码的影响

java - Maven:包 org.junit 不存在

java - 如何展现海量数据

java - 如何在 Spring WebFlux 的响应正文中流式传输二进制数据

svn https : "ra_serf: An error occurred during SSL communication"

java - BouncyCaSTLe Provider Jar 导致 Java 堆空间错误

ios - 验证用于 XMPPFramework iOS 的 SSL/TLS 版本

java - 在Java中: How to handshake a secured connection using Keystore and Truststore certificate?

java - 使用 Spring Boot 进行客户端证书身份验证