Buscar aquí

martes, 13 de octubre de 2015

Solución de javax.net.ssl.SSLHandshakeException a lo dummy para glassfish

Hola! Hace un rato que no escribo y hoy os vengo a contaros la historia de cuando tuve que enfrentarme al problema de que el servidor glassfish (o java en general), necesita consumir algún servicio de una página web segura. La bitácora (o log) que nos entrega glassfish nos muestra el error javax.net.ssl.SSLHandshakeException 
el cual, como su nombre loo indica, significa que no se ha podido hacer el apretón de manos entre los servidores. Para que esto suceda, ellos deben entender que cada uno es confiable. Es decir, no le voy a dar la mano a cualquiera, salvo que yo confíe en él. Claro, si él me muestra su identificación y ésta es válida en todo el territorio nacional (como la cédula) o internacional (como el pasaporte), es más fácil confiar en él. Ahora, que no hace falta el amigo retardado que piensa que mostrando el carnet del colegio se puede identificar en cualquier parte. Yo confío en él, pero porque se que tiene sus problemas, pero, ya le expliqué que eso no está bien, que lo mejor es que él saque su identificación en una entidad certificadora. Claro, eso implica tener que pagar, y que la entidad lo vea (salvo que seas hijo del registrador).

Ahora bien, todos confíamos en la registraduría o en la central que expide los pasaportes, pero si no, explícitamente tenemos que decirle a los demás que confíe (por favor), en nosotros. Y para ésto hacemos lo siguiente:

Primero, identificar dónde está ese archivo, carpeta o en nuestros recuerdos, que nos muestra quiénes son confiables. En glassfish, normalmente está en el archivo domains.xml (glassfish/domains/domain1/config/domain.xml) y buscamos la línea que dice:


-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}

Generalmente está configurada con el archivo cacerts.jks

Entonces, nos bajamos ese archivo, y luego lo abrimos con un programa similar a key store explorer [1] 







Entonces, la idea es agregar el certificado a este depósito de certificados de confianza. Conseguimos el certificado, así, en chrome, hacemos click en:








Lo exportamos, luego vamos al programa antes mencionado, lo importamos con Tools->Import trusted certificate, Le damos Aceptar, OK, Aceptar. Luego guardamos el archivo cacerts, lo subimos y reiniciamos glassfish. Dudas? Comentarios? Felicitaciones? Escríbanme! :-)

[1] http://keystore-explorer.sourceforge.net/downloads.php



No hay comentarios: