Как программно установить SSLContext клиента JAX-WS?
Я работаю на сервере в распределенном приложении, которое имеет браузерные клиенты, а также участвует в межсерверной связи с третьей стороной. У моего сервера есть сертификат, подписанный ЦС, который позволяет моим клиентам подключаться по протоколу TLS (SSL) с использованием HTTP / S и XMPP (безопасный). Это все работает нормально.
Теперь мне нужно безопасно подключиться к стороннему серверу, используя JAX-WS через HTTPS / SSL. В этом сообщении мой сервер действует как клиент в взаимодействии JAX-WS, а я - клиентский сертификат, подписанный третьей стороной.
Я попытался добавить новое хранилище ключей через стандартную конфигурацию системы (-Djavax.net.ssl.keyStore=xyz
) но другие мои компоненты явно затронуты этим. Хотя мои другие компоненты используют выделенные параметры для их конфигурации SSL (my.xmpp.keystore=xxx, my.xmpp.truststore=xxy, ...
), кажется, что они в конечном итоге используют глобальныйSSLContext
, (Пространство имен конфигурацииmy.xmpp.
казалось, указывает на разделение, но это не так)
Я также попытался добавить свой клиентский сертификат в исходное хранилище ключей, но, возможно, другим моим компонентам он тоже не понравился.
Я думаю, что мой единственный оставшийся вариант - программно подключиться к конфигурации HTTPS JAX-WS для настройки хранилища ключей и доверенных сертификатов для взаимодействия клиента JAX-WS.
Любые идеи / указатели о том, как это сделать? Вся информация, которую я нахожу, либо используетjavax.net.ssl.keyStore
метод или установка глобальногоSSLContext
что, я думаю, все закончится тем же конфликтом. Самым близким, что я получил к чему-то полезному, был этот старый отчет об ошибках, который запрашивает нужную мне функцию:Добавить поддержку для передачи SSLContext в среду выполнения клиента JAX-WS
Любой берет?