Создание SSL-соединения: InvalidAlgorithmParameterException - PullRequest
0 голосов
/ 21 января 2019

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

Я хочу написать Unit-Test, который создает SSL-соединение с использованием предоставленного SSLContext, но я получаю InvalidAlgorithmParameterException, когда пытаюсь.Вся информация, связанная с этой ошибкой, которую я нашел до сих пор, приводит к замене или объявлению пути к файлу jdk cacerts.Насколько я понимаю, в моем случае, поскольку мои сертификаты, хранилища ключей и доверенные хранилища находятся в памяти после загрузки из базы данных, файл, в котором хранится такая информация, не может быть причиной моей проблемы.

Есть ли какая-нибудь обычная проблема с root при возникновении этого исключения?Пока я знаю только, что где-то что-то не так, что не очень хорошее начало.

Мой код выглядит следующим образом:

SSLContext ctx = ...
HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
URL url = new URL("https://target-address");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy-address", 8080)));
con.getInputStream();

В последней строке выдается исключение:

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Правильно ли настроена моя установка?Зная, что я должен найти проблему в создании SSLContext, я бы уже выиграл.Я действительно новичок во всей теме создания соединений с использованием SSL / сертификатов.

...