Скажем, у меня есть следующий JAR:
myapp-1.0.jar/
META-INF/
MANIFEST
classes/
com/
<All my .class files>
mycert1.cer
mycert2.cer
mycert3.cer
Мне нужен способ запустить JAR из командной строки следующим образом:
java -jar myapp-1.0.jar -Djavax.net.ssl.keyStore=myapp-1.0.jar/classes/mycert1.cer
или:
java -jar myapp-1.0.jar -Djavax.net.ssl.keyStore=myapp-1.0.jar/classes/mycert2.cer
Но поскольку JAR является ZIP файлом, я не могу получить доступ к "встроенному" сертификату SSL из командной строки. Это решение должно работать как на Windows, так и на Linux. Идеи?
Значение "javax.net.ssl.keyStore" - это имя файла.
Ресурсы в файлах JAR не являются файлами.
Вы не можете сделать это с помощью свойств системы.
Вам нужно будет получить InputStream для ресурса и загрузить с него KeyStore, а также инициализировать KeyManager с этим и инициализировать SSLContext с этим и получить из него SSLSocketFactory и создать с ним SSLS файлы, как описано в Справочное руководство JSSE.