martes, 3 de febrero de 2009

Instalar un certificado SSL en un IBM Websphere 6.1

Mas de alguna vez me he topado con el problema de instalar un certificado SSL en Java. Hoy nos toco instalarlo en un Was 6.1 (Websphere Application Server de IBM).

¿porque necesitaría instalarlo?

Porque tengo una aplicacion java instalada en el WAS que necesita consumir un servicio proveído por otra maquina mediante SSL, por ejemplo: consumir un webservice en una direccion https, crear usuarios en un LDAP, leer el contenido de un https.

¿porque es complicado?

Realmente no es muy complicado pero es un poco dificil conseguir documentacion ya que la mayoría de documentación relacionada esta orientada a Tomcat, o a configurarlo en un JVM usando herramientas como el keytool. Ademas que las busquedas en google regularmente te refieren a como instalar un SSL en tu WAS o a como conectar tu WAS a un LDAP con SSL.

¿que error me da?

Si trabajo con conexiones SSL sin tener los certificados registrados, me aparecen errores como:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Could not find trusted certificate

Handshake terminated SSL engine: CLOSED at com.ibm.ws.webservices.engine.transport.http.HttpOutboundChannelConnection.connect(HttpOutboundChannelConnection.java:752) at com.ibm.ws.webservices.engine.transport.http.HttpsOutboundChannelConnection.connect(HttpsOutboundChannelConnection.java)

¿que debo hacer?
La idea es encontrar el lugar de almacenamiento de los certificados en JVM (keystore) y registrar los certificados de las urls en las que confiamos. Es decir si me voy a conectar a https://banco.com.gt debo de instalar el certificado de banco dentro de mi JVM.

En un tomcat buscaría el JRE que se esta ejecutando e instalaría el certificado: "keytool -keystore cacerts -trustcacerts -import -file xxx.cer".

pero para el WAS 6.1 no puedo hacerlo de esa manera.

WAS 6.0 funciono usando el keytool de la JRE que viene en WAS.

¿que debo hacer?

1. ir al sitio del banco y desde el explorador descargar el certificado.


2. En el sitio administrativo de WAS, buscar la opcion de "almacenes de claves" y desde ahi configurar los certificados:

Seleccionar las opciones de certificados firmados

y ahi busco el certificado default para el Nodo/celda en la que estoy trabajando dentro de WAS.Aqui agrego el archivo CER generado y con esta información ya dejo registrado el certificado de banco como confiable (trusted).



Luego de esto se reinicia el WAS y las aplicaciones ya encuentran los certificados como confiables y establecen la conexion.

saludos!

No hay comentarios:

Publicar un comentario