miércoles, 25 de octubre de 2017

SSL o HTTPS en Tomcat | Bajo Debian

Bueno despues de no escribir durante un tiempo en el blog, me tomaré un tiempo para documentar o hacer un manual corto pero efectivo, HTTPS en Tomcat 8, me parecía sencillo y la verdad al final si lo fue, el hecho es que no hay un manual que use Debian como base, imagino que aplica a las demás distribuciones, la configuración que detallo lineas abajo me sirvió mucho.

1. Generar un certificado, ingresando a una consola como root, luego a la ruta /var/lib/tomcat8/conf/
cd /var/lib/tomcat8/conf
keytool -genkey -alias aliasCERT -keyalg RSA -keystore keystore
Es importante notar que el alias debe ser correctamente especificado, para este caso "alisCERT"
A continuación la salida y respuestas que debe escribir:
Introduzca la contraseña del almacén de claves:  <=== Escriba una clave para el keystore
Volver a escribir la contraseña nueva: <=== Repita la clave para el keystore
¿Cuáles son su nombre y su apellido?
  [Unknown]:  Ariel Gary Sandi Vigabriel
¿Cuál es el nombre de su unidad de organización?
  [Unknown]:  Entidad DEMO
¿Cuál es el nombre de su organización?
  [Unknown]:  Entidad DEMO
¿Cuál es el nombre de su ciudad o localidad?
  [Unknown]:  Arequipa
¿Cuál es el nombre de su estado o provincia?
  [Unknown]:  Arequipa
¿Cuál es el código de país de dos letras de la unidad?
  [Unknown]:  PE
¿Es correcto CN=Ariel Gary Sandi Vigabriel, OU=Entidad Demo, O=Entidad Demo, L=Entidad Demo, ST=Entidad Demo, C=PE?
  [no]:  s  <=== Importante poner "s" luego enter

Introduzca la contraseña de clave para <simio>
 (INTRO si es la misma contraseña que la del almacén de claves):  <=== enter

root@kronos:/home/gary# 

2. Configurar el servidor editando el archivo server.xml de tomcat
nano /var/lib/tomcat8/conf/server.xml 
Existe una sección en el archivo llamada <!-- <Connector port="8443" yo recomiendo copiar y pegar el siguiente contenido al final del connector
<!--
<Connector port="8443
.......
.......
</Connector>
-->
<Connector port="8443" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443"
                SSLEnabled="true"
                scheme="https"
                secure="true"
                sslProtocol="TLS"
                keystoreFile="conf/keystore"
                keystorePass="clavekeystore" />
Como puede apreciarse los parámetros son claros, es importante escribir la clave que escribió en el paso 1, esto con el fin de que el certificado funcione correctamente.

3. Reiniciar el servicio Tomcat8
systemctl restart tomcat8

4. Acceder con un navegador a: https://localhost:8443/

Fin del proceso!