SSL en Tomcat

2
57135

SSL en Tomcat

  1. Introducción

En
este tutorial se describe cómo configurar Tomcat para acceder
a las aplicaciones web empleando HTTP sobre SSL.Vamos a utilizar la
técnica sencilla,

que
es la que se describe en
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html.Consiste
en utilizar la herramienta keytool, distribuida con el kit de
desarrollo de Java,

para
generar un certificado autofirmado del servidor.También será
necesario cambiar la configuración del fichero server.xml para
activar un conector que permitirá

acceder
a Tomcat a través de https.

  1. Software necesario

La herramienta keytool se
encuentra en el directorio bin de la instalación j2sdk. Si
estamos usando una versión anterior a la 1.4, debemos
descargar

la extensión de http://java.sun.com/products/jsse/
e incluir los jars en el directorio
$JAVA_HOME/jre/lib/ext.

Para los usuarios de una
versión igual o superior a la 1.4, no es necesario descargar
nada porque ésta utilidad ya viene incluida.

  1. Configurando el
    server.xml

Lo único que
tenemos que hacer es descomentar la parte del siguiente elemento
Connector:

Con esto conseguimos activar el uso de SSL en el
puerto 8443. No se solicita
certificado al cliente durante el establecimiento de la conexión
SSL (clientAuth = “false”),

por tanto, no es
necesario cambiar nada en el navegador web que usemos, aunque si hay
que crear el almacén de claves en el servidor.

  1. Creando
    el almacén de claves y un certificado autofirmado

Abrimos
una consola y ejecutamos:

%JAVA_HOME%\bin\keytool
–genkey –alias tomcat –keyalg RSA

Nos pedirá una
serie de datos para configurar el certificado. Lo primero que nos
pide es la contraseña para el almacén de claves:

La clave por defecto
utilizada por Tomcat es “changeit” y es la que
introduciremos. Si queremos usar cualquier otra clave, lo único
que tenemos que hacer

es añadir al Connector el parámetro keystorePass
especificando la clave a usar.

keystorePass=”mi_clave”/>

A continuación nos pide nuestro nombre, el nombre de
nuestra unidad de organización, el nombre de nuestra
organización, la ciudad o localidad, el estado

o provincia, y el código del pais. Nos pregunta si los
datos introducidos son correctos e introducimos si.

A continuación nos pide la contraseña clave para
<tomcat>. Aunque nos permite introducir una distinta, siempre
debemos poner la misma contraseña

aquí que la que tenemos en nuestro almacén de claves (Nos
da la opción de pulsar INTRO para este efecto).

Nota: Esto se indica en la ayuda de Tomcat en
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html.
Tomcat lanzaría un java.io.IOException:
Cannot recover key
si no usaramos la misma clave

Y ya hemos terminado, el proceso nos ha creado un archivo
.keystore en el home del usuario:

C:\Documents
and Settings\user en sistemas
Windows XP

C:\Winnt\Profiles\user
en sistemas multi-usuario Windows
NT

C:\Windows\Profiles\user
en sistemas multi-usuario Windows
95/98

C:\Windows
en sistemas de un sólo usuario
Windows 95/98

Tomcat utiliza por defecto este .keystore para buscar los
certificados (el que se encuentra en el directorio home del usuario).
Si quisieramos utilizar un almacén situado

en otra ubicación, unicamente debemos añadir al
Connector el parámetro keystoreFile
especificando la ruta absoluta al fichero, o una ruta relativa
resuelta a partir del

%CATALINA_BASE%.

Suponiendo que mi fichero se encuentra en
C:\keyStores\.mykeystore:

Suponiendo que mi
%CATALINA_BASE% apunta a C:\servidores\tomcat y mi fichero se
encuentra en C:\servidores\tomcat\keystores\.mykeystore

Ahora, arrancamos tomcat y probamos en el navegador
https://localhost:8443 para ver
si funciona:

Perfecto, ya tenemos
habilitada la configuración SSL en nuestro tomcat.

  1. Acerca
    del autor

José
Carlos López Diaz. Ingeniero en Informática

jclopez@autentia.com

Visitanos
en www.autentia.com

2 Comentarios

  1. El tutorial esta muy bien… de hecho todo perfecto solo quiero saber porque me sale un error en el certificado Direccion no coincidente. ¿Que hagooooo? o mas bien que hice mal? muchas gracias por su tiempo y ayuda

Dejar respuesta

Please enter your comment!
Please enter your name here