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