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

时间:2010-11-04 14:03:56

标签: java ssl keystore

我正在编写一个使用SSL的应用程序。 因此,我有一个虚拟密钥库和一个我想要提供给客户的虚拟信任库。 是否有任何默认文件夹将它们放入我的发行版中? 例如docs,lib,bin等。通常将密钥库放在服务器上的位置通常是客户端放置信任库的位置?

由于

2 个答案:

答案 0 :(得分:33)

在Java中,根据JSSE Reference Guidekeystore没有默认值,truststore的默认值为“ jssecacerts(如果存在)。否则,cacerts ”。

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

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

答案 1 :(得分:14)

就像布鲁诺说的那样,你最好自己配置它。这是我如何做到的。 首先创建一个属性文件(/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);