¿Cómo configurar mediante programación el SSLContext de un cliente JAX-WS?

Estoy trabajando en un servidor en una aplicación distribuida que tiene clientes de navegador y también participa en la comunicación de servidor a servidor con un tercero. Mi servidor tiene un certificado firmado por una CA para permitir que mis clientes se conecten utilizando la comunicación TLS (SSL) utilizando HTTP / S y XMPP (seguro). Todo eso está funcionando bien.

Ahora necesito conectarme de forma segura a un servidor de terceros utilizando JAX-WS a través de HTTPS / SSL. En esta comunicación, mi servidor actúa como cliente en la interacción JAX-WS y tengo un certificado de cliente firmado por el tercero.

Intenté agregar un nuevo almacén de claves a través de la configuración estándar del sistema (-Djavax.net.ssl.keyStore=xyz) pero mis otros componentes están claramente afectados por esto. Aunque mis otros componentes están usando parámetros dedicados para su configuración SSL (my.xmpp.keystore=xxx, my.xmpp.truststore=xxy, ...), parece que terminan utilizando el globalSSLContext. (El espacio de nombres de configuraciónmy.xmpp. Parecía indicar separación, pero no es el caso.

También intenté agregar mi certificado de cliente en mi almacén de claves original, pero, una vez más, a mis otros componentes parece que tampoco les gusta.

Creo que mi única opción que me queda es enganchar programáticamente en la configuración HTTPS de JAX-WS para configurar el almacén de claves y el almacén de confianza para la interacción JAX-WS del cliente.

¿Alguna idea / consejos sobre cómo hacer esto? Toda la información que encuentro o utiliza eljavax.net.ssl.keyStore método o está configurando lo globalSSLContext Eso, supongo, terminará en el mismo confinco. Lo más cercano a algo útil fue este antiguo informe de error que solicita la función que necesito:Agregue soporte para pasar un SSLContext al tiempo de ejecución del cliente JAX-WS

Alguna toma?

Respuestas a la pregunta(9)

Su respuesta a la pregunta