Может ли JVM доверять самозаверяющему сертификату только для одного запуска?

Я пытаюсь заставить clojure jar доверять самозаверяющему сертификату, который я сделал при запуске jar, но на самом деле я не хочу добавлять сертификат в свое хранилище сертификатов. Есть ли способ заставить JVM доверять этому самозаверяющему сертификату openssl эфемерно или таким образом, чтобы ему доверяли только для одного запуска?

Если есть способ сделать это на языке, и если он помогает, я использую библиотеку clj-http-lite, используя функцию get. Тем не менее, дополнительные баллы для универсального решения для всей JVM.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
344
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете создать (временное) доверенное хранилище и настроить его в командной строке с системными свойствами javax.net.ssl.trustStore и javax.net.ssl.trustStorePassword: https://docs.oracle.com/javadb/10.8.3.0/adminguide/cadminsslclient.html

Ответ принят как подходящий

Я не рекомендую переопределять глобальное хранилище доверия с помощью аргумента командной строки javax.net.ssl.trustStore для JVM. Вместо этого, если вам нужно подключиться к удаленному серверу с помощью самозаверяющего сертификата, я рекомендую создать контекст SSL в коде и использовать его для подключения. Этот подход лучше, если вы не хотите снижать глобальную безопасность JVM и если у вас есть несколько конечных точек, каждая из которых требует самоподписанного сертификата для подключения.

Вот пример Построения SSL-контекста, который можно использовать в функции http/get. Вы можете передать его функции request (см. код для опции insecure? и сделайте то же самое).

Мой голос заблокирован, я проголосовал против этого, но оказалось, что мне нужен языковой способ сделать это и для целей модульного тестирования. Спасибо!

djhaskin987 14.01.2021 04:27

Другие вопросы по теме