【发布时间】:2017-11-08 13:53:43
【问题描述】:
我最近加入了一个项目,该项目有一个在 Tomcat 中运行的应用程序,它使用单个文件作为 KeyStore 和 TrustStore。换句话说,它包括trustedCertEntry 和PrivateKeyEntry 类型的条目。
从 Tomcat 8.5.6 升级到 8.5.20 时,我意识到 catalina.out 给了我
java.lang.IllegalArgumentException: java.security.KeyStoreException: Cannot store non-PrivateKeys
解决方案是从密钥库中删除trustedCertEntry 条目。
对我来说,这似乎很明显,您希望将它们分开。我的问题是,使用同一个文件作为密钥库和信任库是否有任何可能的安全后果?如果是这样,为什么 Java(或 SSL)允许将它们保存在同一个文件中? p>
【问题讨论】:
-
另一种解决方案是在 tomcat 连接器配置中提供特定于密钥存储文件中私钥的密钥别名。很多情况下,我们无法控制特别是在生产环境中使用的证书。
标签: java tomcat ssl keytool jks