Подтвердить что ты не робот

Каково местоположение по умолчанию для хранилища ключей/доверия Java-приложений?

Я пишу приложение, использующее SSL. Следовательно, у меня есть манекен хранилище ключей и фиктивная доверенность, которую я хочу предоставить моему клиенту. Есть ли папка по умолчанию, чтобы помещать их в мой дистрибутив? например docs, lib, bin... и т.д. Где обычно находится хранилище ключей на сервере и где обычно находится клиент доверия?

Спасибо

4b9b3361

Ответ 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);