Как я могу программно найти файл java keystore, который использует мой JVM по умолчанию TrustManager?
Этот вопрос схож, но ответы на самом деле касаются файла хранилища ключей, который он должен использовать. Я хочу отобразить в своей программе фактический файл хранилища ключей, загруженный JVM.
Обновление: Вопрос: "Почему я не знаю? Ответ: мое приложение работает в среде клиента, которую я не контролирую, поэтому я не знаю.
Обновление: вопрос: "Не существует ключевого хранилища по умолчанию, но есть доверительный магазин по умолчанию": я обновил свой вопрос. Я пытаюсь изучить хранилища ключей, которые используются по умолчанию.
Обновление: импульс, стоящий за этим вопросом, заключается в том, что я хочу отправить в свое приложение то, что нужно обновить хранилище ключей. Администратор, работающий с приложением, часто сталкивается с трудностями при определении правильного использования jvm, не говоря уже о правильном хранилище ключей. Я хочу дать подсказку администратору, какое хранилище данных они должны обновлять. Да, я знаю, что администратор должен "знать" много о Java и ключах, которых, вероятно, нет.
Как я могу программно найти файл java keystore, который использует мой JVM по умолчанию TrustManager?
Он задается содержимым javax.net.ssl.trustManager,
если установлено, в противном случае это файл lib/security/jssecacerts
в папке JRE, если он присутствует, в противном случае это файл lib/security/cacerts
.
Все это указано в Справочном руководстве JSSE.
Импульс, стоящий за этим вопросом, заключается в том, что я хочу рассказать в своем приложении, какое хранилище нуждается в обновлении.
Я не знаю, почему вы считаете, что файл доверия, предоставленный Java, нуждается в обновлении, но вы ошибаетесь, если только вы не имеете дело с самозаверяющими сертификатами, и в этом случае реальный ответ "не нужно".
KeyManager
, он может быть только тем, что задано системным свойствомjava.net.ssl.keyStore
.