Как указать аргументы SSL JVM для встроенных сертификатов?

1

Скажем, у меня есть следующий 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. Идеи?

Теги:
ssl
command-line

1 ответ

2
Лучший ответ

Значение "javax.net.ssl.keyStore" - это имя файла.

Ресурсы в файлах JAR не являются файлами.

Вы не можете сделать это с помощью свойств системы.

Вам нужно будет получить InputStream для ресурса и загрузить с него KeyStore, а также инициализировать KeyManager с этим и инициализировать SSLContext с этим и получить из него SSLSocketFactory и создать с ним SSLS файлы, как описано в Справочное руководство JSSE.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню