Configurar SSL para Tomcat 7 en Linux

En el presente post vamos a aprender a configurar Apache Tomcat 7 para poder utilizar SSL. Como podremos observar, es un proceso relativamente sencillo si se conocen los pasos a realizar. En entradas anteriores se ha explicado la instalación de Tomcat por lo que, en esta, se va a presuponer que ya tenemos nuestro servidor correctamente instalado y funcionando sin problemas.

Software necesario y versiones utilizadas (a 29 de noviembre de 2011):

El primer paso que vamos a realizar va a ser crear nuestro keystore (repositorio de certificados seguros). Para ello ejecutaremos el comando:

aitor@BlogDeAitor:~$ $JAVA_HOME/bin/keytool -genkey -alias aitor -keypass aitortomcat
-keystore aitor.bin -storepass aitortomcat -validity 365
¿Cuáles son su nombre y su apellido?
  [Unknown]:  blogdeaitor.wordpress.com
¿Cuál es el nombre de su unidad de organización?
  [Unknown]:  Blog de Aitor
¿Cuál es el nombre de su organización?
  [Unknown]:  Blog de Aitor
¿Cuál es el nombre de su ciudad o localidad?
  [Unknown]:  Barcelona
¿Cuál es el nombre de su estado o provincia?
  [Unknown]:  Barcelona
¿Cuál es el código de país de dos letras de la unidad?
  [Unknown]:  ES
¿Es correcto CN=Aitor, OU=Unknown, O=Blog de Aitor, L=Barcelona, ST=Barcelona, C=ES?
  [no]:  s

Dónde $JAVA_HOME identifica al directorio dónde hemos instalado java, en nuestro caso /usr/local/jdk7u1

Debemos tener en cuenta que la contraseña debe ser de, al menos, 6 dígitos, de lo contrario obtendremos el siguiente aviso:

La contraseña del almacén de claves es demasiado corta, debe tener al menos 6 caracteres

Una vez creado el keystore, ya estamos listos para configurar nuestro tomcat para hacer uso de él. Para ello debemos modificar el fichero server.xml como se muestra a continuación

aitor@BlogDeAitor:~$ vim $CATALINA_BASE/conf/server.xml
<!-- Define a SSL HTTP/1.1 Connector on port 8443
 This connector uses the JSSE configuration, when using APR, the
 connector should be using the OpenSSL style configuration
 described in the APR documentation -->

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
 maxThreads="150" scheme="https" secure="true"
 clientAuth="false" sslProtocol="TLS"
 keystoreFile="webapps/aitor.bin"
 keystorePass="aitortomcat"/>

Dónde $CATALINA_BASE identifica al directorio dónde hemos instalado tomcat, en nuestro caso /usr/local/tomcat7.0.22

Debemos buscar las lineas donde aparece Connector port=”8443″ y descomentarlas. Una vez hecho esto, bastará con añadir las dos ultimas lineas mostradas anteriormente y resaltadas en negrita, logicamente, adaptando el path y la contraseña a cada caso.

Finalmente, el ultimo paso será mover el keystore creado anteriormente a webapps (tal y como le hemos indicado en este ejemplo).

aitor@BlogDeAitor:~$ mv aitor.bin $CATALINA_BASE/webapps/

Si iniciamos nuestro tomcat, podremos observar como podemos acceder a él mediante HTTP y HTTPS

aitor@BlogDeAitor:$ $CATALINA_BASE/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat-7.0.22/
Using CATALINA_HOME:   /usr/local/tomcat-7.0.22
Using CATALINA_TMPDIR: /usr/local/tomcat-7.0.22//temp
Using JRE_HOME:        /usr/local/jdk7u1
Using CLASSPATH:       /usr/local/tomcat-7.0.22/bin/bootstrap.jar:
/usr/local/tomcat-7.0.22//bin/tomcat-juli.jar

Podemos comprobar que se ha iniciado correctamente y conocer el puerto utilizado para HTTPS por tomcat utilizando la herramienta nmap.

aitor@BlogDeAitor:/usr/local/tomcat-7.0.22$ nmap 127.0.0.1
Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-29 15:42 CET
Interesting ports on localhost (127.0.0.1):
Not shown: 996 closed ports
PORT     STATE SERVICE
631/tcp  open  ipp
8009/tcp open  ajp13
8080/tcp open  http-proxy
8443/tcp open  https-alt

Si accedemos a la direccion http://localhost:8080 y https://localhost:8443 podremos tener acceso a nuestro tomcat haciendo uso de http y https respectivamente.

Posts relacionados:

Anuncios

6 Responses to Configurar SSL para Tomcat 7 en Linux

  1. Pingback: Web Services con Metro 2.1 y Apache Tomcat 7 « Aitor Rigada

  2. Pingback: Web Services con Axis2, Apache Tomcat y Netbeans « Aitor Rigada

  3. Pingback: Instalación Axis2 « Aitor Rigada

  4. Uthanien says:

    Hola:

    Sabes seguía tu guia, pero al momento de generar el keystore, pongo los datos y termino sin problema después de poner si. (no me acepta s).
    Genere uno con el mismo nombre de mi usuario (esperando que lo guardara en el directorio /home/usuari). Ese -alias algo que valores debería tener? y por ultimo donde debería guardar el .bin?’

    Saludos y gracias

    Atte.

  5. Aitor Rigada says:

    Hola Uthanien,

    El keystore se va a generar en el mismo directorio desde el cual has introducido el comando a no ser que indiques un directorio concreto en el mismo.

    El alias simplemente te identifica el keystore creado, puedes poner tu nombre (como he hecho en mi caso) o la url de tu servidor web.

    En cuanto al directorio donde guardar el keystore generado, podrías escoger tú el directorio adecuado para guardarlo siempre y cuando este no sea accesible desde el exterior del servidor (directorio compartido, directorio de página web, etc) y configurando los permisos necesarios tanto del directorio como del key para que ningún usuario pueda tener acceso a ellos y sólo puedan ser leídos (400 sería el adecuado).

  6. Uthanien says:

    Aitor:

    Gracias por contestar. Efectivamente el Keystore se genera donde estoy al momento de ejecutar el comando, sin embargo yo andaba buscando un archivo alias.bin, sin embargo me genera un .keystore.

    Solucionado lo del keystore todo funciono de maravillas.

    Muchas gracias!!!!

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

A %d blogueros les gusta esto: