java - Java keystore 中的中间 CA 证书

标签 java ssl

我的 Dev OPs 团队想在我们的 Java keystore 中使用中间 CA 证书。我相信将中间证书添加到 keystore 与添加“常规证书”的过程相同,对吗?有什么我需要注意的“陷阱”吗?另外,我如何在测试中验证 Java 正在使用中间证书,而不是通过 CA 进行检查?

最佳答案

你需要从证书链的角度来推理。中间 CA 证书的目标是让远程方在终端实体证书(例如服务器或客户端证书本身)和链上游的另一个 CA 证书之间建立链。

如果您正在谈论将此中间 CA 证书导入将用作信任库的 keystore ,那么该 CA 证书是中间证书还是“根”CA 证书并不重要:它将成为一个与使用该信任库的应用程序的另一个信任 anchor 一样。

如果您谈论的是用作 keystore 的 keystore ,则需要确保您的 EEC 将与正确的链一起呈现。

例如,假设 CA_1 为 CA_2 颁发证书,CA_2 为服务器 S 颁发证书。 您的客户在其受信任的 anchor 中拥有证书 CA_1(但不一定是 CA_2):您需要提供一条链“S,CA_2”,以便他们可以通过 CA_2 验证该链(否则,他们将不知道如何链接CA_1 到 S)。

为此,您需要确保 S 的条目及其私钥包含它需要发送的链(S,CA_2),而不仅仅是证书 S。在您的 keystore 中的单独条目中导入 CA_2 不会JSSE 在出示证书 S 时为您构建链。

this answer 中描述了如何执行此操作(尽管这是从客户端证书的角度来看的)。

关于java - Java keystore 中的中间 CA 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453523/

相关文章:

java - 如何在 OSGI 包中包含 C 代码

azure - 在 Azure 应用程序网关中设置 SSL

java - SSL 证书链错误

java - 使用 queryMap 进行 Spark 路由解析

java - 将内容推送到 Facebook、Twitter、linkedin、youtube 和 vimeo 等社交网站

java - 使用 equalsIgnoreCase 时,if else 在 selenium webdriver 中不起作用

java - 使用 Postconstruct 方法在应用程序范围类中注入(inject)请求范围 bean 时出现上下文不活动异常

Python 请求 SSL 错误 504

android - Fetch in react native 不能在 android 上使用 ssl

java - 泰鲁斯 wss ://websocket not passing through squid proxy