Каково местоположение по умолчанию для хранилища ключей/доверия Java-приложений?
Я пишу приложение, использующее SSL.
Следовательно, у меня есть манекен хранилище ключей и фиктивная доверенность, которую я хочу предоставить моему клиенту.
Есть ли папка по умолчанию, чтобы помещать их в мой дистрибутив?
например docs, lib, bin... и т.д. Где обычно находится хранилище ключей на сервере и где обычно находится клиент доверия?
Спасибо
Ответы
Ответ 1
В Java, в соответствии с Справочное руководство JSSE, по умолчанию для keystore
нет значения по умолчанию для truststore
"jssecacerts, если он существует. В противном случае, cacerts".
Несколько приложений используют ~/.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);