繁体   English   中英

我们可以在 Java trustStore 中的逻辑文件夹结构中组织每个具有多个子项的证书链吗

[英]Can we organize each certificate chain with multiple children in logical folders structure in the Java trustStore

假设对于 SSL/TLS,我有 2 个 rootCA 的 CA1 和 CA2(都是自签名的),并且每个 CA 都签署并颁发了 5 个最终实体证书。 我需要将每个 rootCA 及其对应的 5 个子公共证书存储在 Java trustStore 中的某个逻辑文件夹结构中,这样在给定父 CA 公共证书或别名的情况下,我想检索所有相应的子证书颁发。 例如,给定 CA1 别名,我想检索 CA1,并且只检索 CA1 颁发的子证书,这同样适用于 CA2。

我检查了 Java 的java.security.KeyStore ,它提供了 API 来存储证书链,但它只接受信任链,其中一个父级和一个子级可以添加到信任库。 我们不能将同一级别的多个子证书添加到该父级。 keytool 实用程序也没有为我的要求提供解决方案。

有什么方法可以将父级证书存储在信任存储的逻辑文件夹结构中的多个子级证书中,我可以在其中检索与特定父级别名相关的所有子级?

您不能将证书按逻辑顺序存储在 java 密钥库中。 java 密钥库基本上是一个键值(别名和条目)存储。 该条目可以是证书或密钥或密钥对(私钥和相应的证书链,其中包括公钥)。

您必须编写自己的自定义逻辑来满足您的要求。 您可以通过查看证书的issuerDNsubjectDN属性来确定证书是否由给定 CA 签名。 如果证书是自签名的(如 CA 证书),则issuerDNsubjectDN将相同。 如果证书是由 CA 签署的,那么 CA 的 subjectDN 将放在已签署证书的 issuerDN 中。 这样您就可以识别证书链的层次结构。 但是,如果您使用这种方法,则必须在您的信任库中多次循环访问所有证书。

我不确定您的用例是什么,但是如果您需要使用 SSL 连接到服务器的信任库,那么最好将所有证书存储在同一个信任库中并且不用担心逻辑顺序,并且只需将信任库输入 JVM,它就会神奇地识别要使用的正确证书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM