jueves, febrero 05, 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!

8 comentarios:

Anónimo dijo...

Socio, nos salvaste la vida, muy buena guía.

Saludos y gracias por los aportes

carcasco dijo...

que bueno que les funcionó.. ahora hasta mas ganas de seguir escribiendo tengo :D

saludos!

De Todo un Poco. Cosas y casos que pasan en Guate. dijo...

Muchas gracias Carlos, fue de gran ayuda su publicación. Me salvo la vida en pleno paso a producción :)

Oscar B dijo...

Hola... muy buen aporte.. mil gracias!
Pero tengo una pregunta:
Si lo que quiero es que al acceder a la pagina web de las aplicaciones que tengo instaladas en mi WAS, sea mediante https y no http, que debo hacer?

ofbe05@hotmail.com

qath dijo...

Que tal,
He seguido las instrucciones que has puesto en este post, pero sigue sin funcionarme. asi ke nada... continuo buscando

Anónimo dijo...

Yo estoy intentando simplemente servir por https una de las aplicaciones instaladas, esto es tan fácil en tomcat/jboss...

El caso es que creo una configuración SSL, pero luego no se como asociarla a una aplicación en concreto...

Ayudddaaaa!!!

Anónimo dijo...

Excelente ayuda, lo unico comentario es q tienes las imagenes al reves.

Unknown dijo...

Un certificado SSL es una medida de seguridad necesaria y esencial a la hora de proteger el tráfico web y la información de sus clientes. El certificado de seguridad SSL asegura a los visitantes de su página Web que nadie puede ver, interceptar ni alterar los datos que son enviados y recibidos a través de su web.
Existen varios tipos de certificados SSL según el método de autentificación que se use.
Verificación de Dominio: Se validará que el dominio para el cual se emitirá el certificado ssl se encuentra registrado por el solicitante.
Verificación de Organización: También se verificará que la información emitida para el certificado (nombre, ciudad, provincia, pais) sean datos verdaderos.
Verificación Extendida: Además de las anteriores validaciones, se comprobará la existencia legal de la organización y que la misma aprueba la emisión del certificado.
Los certificados solo sirven para un único dominio o subdominio, para varios subdominios se deben usar certificados llamados Wildcard.