Glassfish, Add Trusted Certificate in your webapp

Glassfish, Agregar un Certificado de Autenticidad en tu Aplicación Web

Para que la aplicación web pueda transferir información de forma segura debe realizarlo a través del protocolo https, sin embargo cuando ingresas a una dirección url  por https te puede salir un mensaje como el siguiente:


Para que la aplicación sea de confianza debe ser certificada por una autoridad de certificación (CA), para el ejemplo utilizaremos una versión trial de www.thawte.com. (Así es, el servicio de registro es regulado en internet por las autoridades competentes y la validación  es un servicio que debemos pagar si queremos que alguien valide la autenticidad de nuestro sitio).

Requisitos:

  • Servidor glassfish
  • Nombre de Dominio (DNS)
  • Keytool (Viene incluida en el JDK, buscala en la carpeta bin)

Crear el juego de llaves con el keytool

Ingresas a la carpeta de glassfish descde consola y dentro buscas la ruta “glassfish/domains/domain1/config”, y ejecutas el siguiente comando:

keytool -genkey -alias glassfishcert -keyalg RSA -keysize 2048 -dname "CN=academia-abm.com,OU=Ecampus,O=Ecampus,L=Mexico,S=Mxexico,C=MX" -keypass changeit -keystore keystore.jks -storepass changeit

Puedes verificar que el certificado se agrego correctamente:

keytool -list -v -alias glassfishcert -keystore keystore.jks -storepass changeit

Crear la solicitud de firma de certificado (Certified Signed Request CSR):

keytool -certreq -alias glassfishcert -file glassfish-cert.csr -keypass changeit -storepass changeit -keystore keystore.jks

Al final obtienes un archivo mas o menos con este contenido:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIICtDCCAZwCAQAwbzELMAkGA1UEBhMCTVgxDzANBgNVBAgTBk1leGljbzEPMA0GA1UEBxMGTWV4
aWNvMQ8wDQYDVQQKEwZURVNUIEcxEjAQBgNVBAsTCVRFU1QgQ0VSVDEZMBcGA1UEAxMQYWNhZGVt
aWEtYWJtLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJLTF0varDRmw0Pwz9TG
zgX6ob2DGU/QO6+cKzV+yIr4RDUjgfMR+ZPzqd/unPzE9Ayo6TjHQgZr87SNsdL0d84LRSU8Zoon
qzY8VPfIedDO7UuO/JVCYr6mXoNaccdaelTHv70l8Up3xYoXR1Ug0q69Jmt1UKCnnDvXBh+XdFND
C1QylRyZKwq6+u1WqD3kKoGsTp+QNMPqtWi3Z7Karg9wIvVixwMuy6XXcsAeK7GbQdEid1gElIzA
Mp1+sn7gx1M54ceFCfWUFzSeDTTZjkEkEG2+ADbZtVF7yr4/JpzKSfUC2Tr8p8NblOkLc+9koNyE
9VM+7HjjW5v8qT/MHGECAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBbphuLWxhLJepdXsMDofjV
UgfrAPhL6yK68fRR08LoU9gqZIoB7GRcP9M8aEivseTaiizVDO3J6TGG/q56avs2gIzKB5JI9GaR
3OdhAaMUFyA1IIaDy4biyOOfaO31FnSlZeNfOtJtyGg2ah6WxP8+PO9SEynGKIRAhAq/zBeumLw+
C9n877glfqDNGhq8CMMzfYAGPkQzOir9iWSReEHl58Al9ySOKSsTKZnW44jY4VvCxF2wa7QgO46p
XeNjBWmKZwYqgb5d5OwDnXwr5RAmFIvXBdJbWjuFUVC7gzs1wpTkuvlaR8IUOTj2dyY7EDoJUFy6
2X4bAaERxlxHx0X3
-----END NEW CERTIFICATE REQUEST-----

Nota: Verifica el editor de texto que utilizas porque al copiar el texto puede fallar, ya que lo puede hacer en unicode, ascii o utf8 y puede casusar problemas con el CA, yo utilice el gedit en linux.

Ahora copias el texto del certificado CSR y lo envias al CA, entras a la paguna de  www.thawte.com y solicitas un certificado trial, despues de llenar un formulario te va a llegar un correo electronico con tres certificados:

Thawte trial SSL certificate:

—–BEGIN CERTIFICATE—–
… encrypted cert
—–END CERTIFICATE—–

Thawte Trial Secure Server Intermediate CA:

—–BEGIN CERTIFICATE—–
… encrypted code
—–END CERTIFICATE—–

Thawte Test CA Root certificate:

—–BEGIN CERTIFICATE—–
… encrypted code
—–END CERTIFICATE—–

Guarda cada uno en un archivo separado, copia el texto y pegalo en un editor de texto, yo hice estos archivos: trial.cer, inter.cer, root.cer.

Importar certificados al keystore del glassfish

Ahora hay que agregarlos al keystore:

keytool -import -v -noprompt -trustcacerts -alias thawtetestcert -file root.cer -keypass changeit -keystore cacerts.jks -storepass changeit
keytool -import -v -noprompt -trustcacerts -alias thawtetestcert -file root.cer -keypass changeit -keystore keystore.jks-storepass changeit
keytool -keystore keystore.jks -import -alias cacertint -file inter.cer-storepass changeitkeytool -import -v -noprompt -alias glassfishcert -file trial.cer -keypass changeit -keystore keystore.jks -storepass changeit

NOTA:Cuidado con los nombres y loas archivos fijate bien cual estas utilizando.

Configurar glassfish para utilizar el certificado

En la consola de configuración del glassfish seleccionas server-config > Network Listener > http-listener-2, en la pestaña General marcas las opciones Status y Security , guardas los cambios.

Luego en la pestaña SSL marcas las opciones SSL3 y TLS, en el campo Certificate NickName escribes el nombre de nuestro certificado glassfishcert y guardas los cambios.

Si vuelves a visitar la página ya tienes el certificado pero NO será validado aún, como estamos utilizando la version trial debes importar el archivo root.cer en tu navegador como una autoridad de certificación.

Este último paso no será necesario cuando pagues por el servico a la autoridad de certificación.

Saludos!

2 comentarios en “Glassfish, Add Trusted Certificate in your webapp

  1. Kike Perez dijo:

    Hice todo y me manda este error keytool error:

    java.lang.Exception: Input not an X.509 certificate
    java.lang.Exception: Input not an X.509 certificate
    at sun.security.tools.KeyTool.addTrustedCert(KeyTool.java:2626)
    at sun.security.tools.KeyTool.doCommands(KeyTool.java:1009)
    at sun.security.tools.KeyTool.run(KeyTool.java:340)
    at sun.security.tools.KeyTool.main(KeyTool.java:333)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s