systemadmin.es > LAMP y web > Instalación de un certificado SSL en tomcat (keystore)

Instalación de un certificado SSL en tomcat (keystore)

Habiendo generado un petición CSR desde openssl instalar el certificado SSL en el servidor de aplicaciones tomcat no es directo. Vamos a ver como conseguirlo:

Primero de todo deberemos generar un fichero contenedor de los certificados intermedio mediante openssl. Suponemos que disponemos:

  • cert.pem: Certificado que nos envía nuestra entidad certificadora
  • privkey.pem: Clave privada que hemos generado anteriormente para hacer la petición de firmado (CSR)
  • intermediate.pem: Certificado de la CA intermedia, también nos lo dará nuestra entidad certificadora. En caso que la CA nos de dos ficheros, deberemos concatenarlos de tal manera que el intermedio este primero y luego el certificado raíz

A continuación ejecutamos openssl para generar un fichero en formato PKCS12 que contendrá tanto las claves públicas como las privadas:

openssl pkcs12 -export -in cert.pem -inkey privkey.pem \
        -out fichero.intermedio.pk12 \
        -name server -CAfile intermediate.pem  -caname root

Este fichero va protegido por una clave simétrica, al generarlo nos pedirá que definamos la contraseña:

Enter Export Password:
Verifying - Enter Export Password:

El fichero resultante, de acuerdo con el comando openssl será fichero.intermedio.pk12. A continuación deberemos usar la herramienta keytool presente en el jdk de java. Podemos usar la variable $JAVA_HOME para referirnos al binario: $JAVA_HOME/bin/keytool:

/usr/java/latest/bin/keytool -importkeystore -srckeystore fichero.intermedio.pk12 -srcstoretype PKCS12 -alias server 

Mediante este comando transformamos el fichero PKCS12 en el formato keystore. Primero nos pedirá la contraseña del fichero resultante (keystore):

Enter destination keystore password:
Re-enter new password:

A continuación nos pide la contraseña del fichero origen (PKCS12):

Enter source keystore password:

Esto generará un fichero .keystore en la $HOME con los certificados para que los use tomcat. En el caso que queramos definir un fichero en concreto deberemos usar la opción -destkeystore de keytool.

A continuación deberemos habilitar el Connector usando la opción SSLEnabled=”true”:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  maxThreads="150" scheme="https" secure="true"
  clientAuth="false" sslProtocol="TLSv1" 
  keystorePass="systemadmin.es"
  keyAlias="server"
  />

Las opciones principales son:

  • keyAlias: Indicamos el alias que hemos usando en keytool para identificar el certificado. En dicho contenedor podríamos incluir más de un certificado
  • keystorePass: Deberemos indicar la contraseña del contenedor keystore que hemos generado con keytool
  • keystoreFile: En el caso que no queramos usar el fichero ~/.keystore (por defecto) deberemos usar este parámetro para indicar el keystore que queramos

One comment to “Instalación de un certificado SSL en tomcat (keystore)”

  1. Hola, ¿que pasa si lo unico que deseo hacer es montar un certificado autofirmado?

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>