Sunteți pe pagina 1din 2

Activar SSL en Tomcat con un certificado digital de prueba

En otro artculo anterior ya hablamos acerca de SSL y de cmo activar su suporte enIIS para que las comunicaciones privadas de nuestros clientes viajaran a travs dehttps utilizando un canal seguro que se consegua encriptando los mensajes intercambiados.

Y cmo lo consigo si mi servidor es Apache - Tomcat?


Pues no hay ningn problema. Si utilizamos Tomcat en lugar del servidor web deMicrosoft slo tenemos que seguir los siguientes pasos: 1. En primer lugar tendremos que conseguir nuestro certificado digital. Para generarlo utilizaremos la herramienta "keytool" que nos proporciona Java. Esta utilidad se puede encontrar en el directorio bin de la JDK y se utiliza de la siguiente forma desde lnea de comandos:
keytool -genkey -alias tomcat -keyalg RSA

2. 3. 4.

5.

Una vez iniciado el proceso, tendremos que contestar a una serie de preguntas que se utilizarn para crear nuestro certificado digital. El fichero de claves ".keystore" que acabamos de generar debera encontrarse en el directorio raz del usuario actual, es decir: C:\Documents and Settings\MiNombreDeUsuario. Paramos el servidor Tomcat. Ahora deberemos activar el conector para soporte SSL en el fichero "server.xml" que encontraremos en el directorio "conf" de Tomcat. Para ello tenemos que descomentar las lneas que se encuentran cuando buscamos "Define a SSL HTTP/1.1 Connector on port 8443". 1. De esta forma, SSL se activar por defecto en el puerto 8443 pero podemos cambiar el puerto que aparece especificado en la definicin del conector por el que nosotros queramos. El puerto por defecto para https es el 443, por lo que es recomendable cambiarlo si no tenemos ningn otro servicio que lo utilice. Si lo hemos cambiando, no hay que olvidarse de modificar tambin el valor del parmetro redirectPort en el resto de conectores que haya definidos. 2. Podemos indicar la ubicacin del fichero de claves si la hemos cambiado o si estamos utilizando Tomcat como un servicio indicndolo en la definicin delconector SSL con la siguiente lnea: keystoreFile="C:\miRuta\.keystore". 3. Si al crear nuestro certificado hemos especificado otra clave diferente de la queTomcat espera por defecto (changeit), lo indicaremos tambin en la definicin del conector SSL de esta forma: keystorePass="miNuevaPassword". Arrancamos nuevamente el servidor y ya podemos acceder a l a travs de https.

Estupendo! Y cmo hago para que el acceso por https a una aplicacin sea obligatorio?
Con los pasos previos se ha conseguido que nuestras aplicaciones sean visibles tanto por http como a travs de https. Para permitir nicamente el acceso por https a una de nuestras aplicaciones en concreto, e impedir el acceso a la misma a travs de http, incluiremos las siguientes lneas en el fichero web.xml de la aplicacin, indicando los directorios o archivos para los que vamos requerir la conexin segura mediante la etiqueta "url-pattern":
<security-constraint> <web-resource-collection> <web-resource-name>Entire </web-resource-collection> Application</web-resource-name> <url-pattern>/*</url-pattern>

<user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>

Con estos sencillos pasos ya deberamos tener nuestro servidor Apache - Tomcatlisto para las conexiones seguras. Slo hay que recordar que, al igual que ocurra con el IIS, el certificado digital que hemos generado es de prueba, y por lo tanto a los clientes les aparecer un mensaje de error indicando que el certificado del servidorno es vlido que puede asustarles. Por lo tanto, si tenemos intencin de utilizar el certificado digital para algo ms que pruebas tendremos que conseguir unoreal solicitndolo a una entidad certificadora..