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

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
Tags: <a href="http://systemadmin.es/tag/openssl" title="openSSL" rel="tag">openSSL</a>, <a href="http://systemadmin.es/tag/tomcat" title="Tomcat" rel="tag">Tomcat</a><br>

Via http://systemadmin.es/2012/01/instalacion-de-un-certificado-ssl-en-tomcat-keystore

Related Posts with Thumbnails
 

Comments are closed.

WordPress Themes