Да, вы можете создать и использовать собственное хранилище ключей для своего приложения с помощью утилиты keytool , которая поставляется вместе с JDK.
По сути, хранилище ключей - это хранилище данных для ваших ключей и сертификатов, которое будет использоваться в вашем приложении либо для аутентификации себя в другом объекте, либо для цифровой подписи ваших сообщений или любых других данных.
Отдельное хранилище ключей, называемое trustore, используется для хранения сертификатов открытых ключей объектов, которым вы доверяете.
Эти хранилища ключей можно поместить в ваш путь к классам и указать путь в вашем приложении в виде кода (это параметры виртуальной машины, которыеповлияет на все приложения, работающие на этой виртуальной машине):
Properties properties = System.getProperties();
properties.put("javax.net.ssl.keyStore", path/to/keystorefile);
properties.put("javax.net.ssl.keyStorePassword", keyStorePassword);
properties.put("javax.net.ssl.trustStore", path/to/truststore);
properties.put("javax.net.ssl.trustStorePassword", trustStorePassword);
РЕДАКТИРОВАТЬ:
Да, вы можете указать расположение хранилища ключей и доверенных лиц и их пароли в файле свойств и загрузитьфайл свойств как myProperties.load(myProperties.getClass().getResourceAsStream("/path/to/proertyfile.properties"));
, а затем использовать его в своем коде как (обработка исключений опущена) (это не повлияет на другие приложения):
KeyStore mykeystore = KeyStore.getInstance("JKS");
InputStream is = new FileInputStream("/path/from/myproperties");
mykeystore.load(is, myKeystorePasswordFromProperties.toCharArray());