У нас есть клиент Java (приложение mule), который использует клиент hornetq (v2.3.25.SP20) для подключения к удаленному серверу HornetQ через сервер имен JNDI (порт 1099).
Соединение защищено с помощью SSL. Драйвер требует, чтобы свойство javax.net.ssl.trustStore было установлено явно. В противном случае он не находит хранилище доверия.
Мы хотели бы указать пользовательское хранилище доверенных сертификатов для сеанса.
Но установка глобального свойства javax.net.ssl.trustStore может повлиять на другие приложения. Итак, мы ищем альтернативу.
Я написал собственный менеджер доверия (X509TrustManager), который указывает на пользовательское хранилище доверенных сертификатов. Но проблема в том, что он используется только для установления соединения с сервером JNDI. Затем фактический объект подключения получает местоположение хранилища доверенных сертификатов с удаленного сервера (в случае, если, конечно, javax.net.ssl.trustStore не задан).
Выдается ошибка HQ212007:
connector.create или connectorFactory.createConnector никогда не должны
скинуть исключение, реализация плохо себя ведет, но разберемся
с этим все равно.
Невозможно создать NettyConnector для myserver: 4447
Не удалось найти магазин в хранилище ключей удаленного сервера
Погуглив код ошибки, я обнаружил очень похожую проблему, описанную без решения здесь .
Итак, есть ли другой способ указать путь к хранилищу доверенных сертификатов для клиента hornetq при подключении через JNDI, чтобы он не влиял на другие приложения, работающие в той же системе виртуальных машин? Или, может быть, есть способ полностью отключить проверку SSL-сертификата на стороне клиента - это будет работать и для нас?