Регистрация нескольких хранилищ ключей в JVM

У меня есть два приложения, работающие на одной виртуальной машине Java, и оба используют разные хранилища ключей и хранилища доверенных сертификатов.

Жизнеспособным вариантом было бы использовать одно хранилище ключей и импортировать все остальные в общее хранилище ключей (например, keytool -import), но это действительно помогло бы моим требованиям, если бы я мог использовать отдельные хранилища ключей для отдельных приложений, работающих в той же jvm.

Я мог бы установить хранилище ключей и хранилища доверенных сертификатов для использования в качестве параметров jvm или системных свойств следующим образом:

java -Djavax.net.ssl.keyStore=serverKeys 
-Djavax.net.ssl.keyStorePassword=password 
-Djavax.net.ssl.trustStore=serverTrust 
-Djavax.net.ssl.trustStorePassword=password SSLApplication

или же

System.setProperty("javax.net.ssl.keyStore","serverKeys")

Но проблема этого подхода заключается в том, что он указывает хранилище ключей / хранилище доверенных сертификатов, которое будет использоваться на уровне JVM, поэтому все приложения, работающие в одной и той же JVM, получают одинаковое хранилище ключей / хранилище доверенных сертификатов.

Я также попытался создать собственный SSLContext и установить его по умолчанию, но он также устанавливает контекст для всех приложений, работающих в той же JVM.

SSLContext context = SSLContext.getInstance("SSL");
context.init(kms, tms, null);
SSLContext.setDefault(context);

Я хочу иметь возможность использовать разные хранилища ключей / трастовые хранилища без изменения отдельных кодов приложений.

Решение, которое можетдинамически регистрировать несколько хранилищ ключей в дополнение к хранилищу ключей / сертификатам по умолчанию в jre в jvm было бы здорово.

Решение будет работать следующим образом:

Когда JVM загружается, он загружает все хранилища сертификатов / ключей по умолчанию из папки jre / certs (поведение java по умолчанию, когда хранилища ключей не указаны).Когда приложение 1 загружается, оно регистрирует свои хранилища ключей,затем, когда приложение 2 загружается, оно регистрирует свои хранилища ключей ...

Пожалуйста, дайте мне знать ваши идеи или решения. Заранее спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос