¿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?