哪个是 Java 应用程序的密钥库/信任库的缺省位置?

2022-08-31 19:58:36

我正在编写一个使用 SSL 的应用程序。因此,我有一个虚拟密钥库和一个虚拟信任库,我想提供给我的客户。是否有任何默认文件夹可以将它们放在我的分发中?例如:文档、库、箱...等。密钥库通常放在服务器上的位置,通常信任库放在客户机上的位置?

谢谢


答案 1

在 Java 中,根据 JSSE 参考指南,没有 的默认值,的默认值是 “jssecacerts,如果它存在。否则,就要开口”。keystoretruststore

一些应用程序用作缺省密钥库,但这并非没有问题(主要是因为您可能不希望用户运行的所有应用程序都使用该信任库)。~/.keystore

我建议使用与应用程序捆绑在一起的应用程序特定值,它通常更适用。


答案 2

就像布鲁诺说的,你最好自己配置它。我是这样做的。首先创建一个属性文件(/etc/myapp/config.properties)。

javax.net.ssl.keyStore = /etc/myapp/keyStore
javax.net.ssl.keyStorePassword = 123456

然后将属性从代码加载到环境中。这使您的应用程序可配置。

FileInputStream propFile = new FileInputStream("/etc/myapp/config.properties");
Properties p = new Properties(System.getProperties());
p.load(propFile);
System.setProperties(p);