gpt4 book ai didi

java - 在 JKS 中存储 TrustedCertEntry 和 PrivateKeyEntry 的后果?

转载 作者:行者123 更新时间:2023-11-28 22:16:27 33 4
gpt4 key购买 nike

我最近加入了一个项目,该项目有一个在 Tomcat 中运行的应用程序,该应用程序使用单个文件作为 KeyStore 和 TrustStore。换句话说,它包括类型为 trustedCertEntry 和 PrivateKeyEntry 的条目。

从 Tomcat 8.5.6 升级到 8.5.20 时,我意识到 catalina.out 给了我

java.lang.IllegalArgumentException: java.security.KeyStoreException: Cannot store non-PrivateKeys

解决方案是从 keystore 中删除 trustedCertEntry 条目。

对我来说,这似乎很明显,您希望将它们分开。我的问题是,使用同一个文件作为 keystore 和信任库是否有任何可能的安全后果?如果是这样,为什么 Java(或 SSL)允许将它们保存在同一个文件中? p>

最佳答案

SSL 和 TLS 是可互操作的协议(protocol);按照 IETF 的政策和传统,他们只字不提在任一端点或任何端点存储任何东西。 “那是本地的事情。”

Java 过去对 TrustedCert 和 PrivateKey 使用一种文件格式 (JKS),不仅用于 SSL/TLS,而且用于所有公钥加密(以及可选的 JCEKS 和一些对称加密),并且 Java9 正在切换到 PKCS12 两者.使用相同的格式并不意味着您必须使用相同的文件,我会说最好使用单独的文件,但我没有看到使用单个文件的实际安全问题,只要您保留任何包含私钥仅限于一个系统,或尽可能少的系统,加上适当的备份;然而,这并不是真正的编程问题,您可以尝试在 security.SX 上获得更好的答案。

Tomcat 8.5 sorta-kinda 为 Java-JSSE 和 APR=OpenSSL 堆栈结合了以前独立且(通常令人困惑)不同的配置,我相信 keystore 只能包含私钥的限制是该更改的结果。

关于java - 在 JKS 中存储 TrustedCertEntry 和 PrivateKeyEntry 的后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47181512/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com