Keytool, actualización de certificados Java & Tomcat

En esta entrada vamos a trabajar la renovación de certificados en las máquinas que usan java, a traves la herramienta keytool.

El primer ejemplo es listar todos los certificados en el almacen, normalmente, el almacen de certificados de java lo vamos a localizar en /etc/ssl/certs/java el nombre genérico suele ser cacerts
keytool -list -keystore cacerts, nos va a devolver todos los certificados que tenga almacenados java, en nuestro caso deberemos de buscar certificados con nombres concretos
La clave es la que se usa por defecto, no esta cambiada, changeit

keytool -list -keystore cacerts |grep pp, por norma con esta busqueda nos saldrá los certificados asociados al wildcard en todos nuestros servidores

En este caso nos salen varios candidatos, si tenemos dudas de cual se esta utilizando usamos el siguiente comando, este comando nos dará información ampliada y detallada del certificado en cuestion, buscarémos que el CN sea *.pp.es y que la fecha de expiración sea en el año que estamos, ademas la fecha de creación suele coincidir con el año pasado, ya que yo borro la entrada y la vuelvo a generar.

keytool -list -keystore cacerts -alias cas.pp.es -v, (en este caso he documentado la entrada correcta)Escriba la contraseña del almacén de claves:
Nombre de alias: cas.pp.es
Fecha de creación: 29-jul-2019
Tipo de entrada: trustedCertEntry

Propietario: CN=*.pp.es, OU=Gerencia, O=Partido Popular, L=Madrid, ST=Madrid, C=ES
Emisor: CN=Thawte RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US
Número de serie: 258a3f58d18ca07063aa9d64ec2b3d0
Válido desde: Tue Jul 02 02:00:00 CEST 2019 hasta: Sun Aug 30 14:00:00 CEST 2020
Huellas digitales del certificado:
MD5: B4:9A:55:0A:D0:6E:4B:75:6F:D6:7C:12:31:2E:F1:D2
SHA1: C5:AC:64:E8:B7:2B:B4:2F:B8:9E:B6:3D:26:6E:91:D4:C1:6E:84:79
Nombre del algoritmo de firma: SHA256withRSA
Versión: 3

El siguiente paso, será borrar la entrada cas.pp.es para volver a generarla con el nuevo certificado, este año se procederá a realizar un scrip para que este proceso sea totalmente automatico, con unos parametros standar para todos los servidores afectados.
Para borrar un entrada usaremos el siguiente comando:
keytool -delete -alias cas.pp.es -keystore cacerts
cas.pp.es hace referencias al alias o nombre que se le da al certificado dentro del almacen y cacerts es el almacen que contiene los certificados.

Una vez borrada la entrada procedemos con el proceso de importación, tenemos que tener listo en nuestro directorio de home mismamente los certificados nuevos.
keytool -import -trustcacerts -alias cas.pp.es -file /home/oper/certificados-java/pp.es.cer -keystore cacerts

Finalmente para que todo esto tenga efecto, tendremos que proceder al restar del tomcat, como cada máquina tiene una version distinta proceder con el restart que corresponda a cada máquina.

De manera generica hay una carpeta creada en todos los directorios home de todas las máquinas llamado certificados-java, meter en esta carpeta los certificados, con el nombre de pp.es.cer, dentro de la misma hay un sh, es un ejecutable que realiza la renovación del certificado en java, se parará en cada paso para preguntarnos la contraseña del almacen java.

Intranet

  • Este proceso se realiza en la máquina que contiene el tomcat.
  • 1º situarnos en el directorio del alamcen de certificados java, cd /etc/ssl/certs/java
  • 2º consultar o buscar nuestras entradas con el wildcard, keytool -list -keystore cacerts |grep pp (puede variar el nombre, asegurarnos de que la entrada que sustituimos es la correcta o no nos funcionará)
  • 3º verificar que la entrada es la correcta, keytool -list -keystore cacerts -alias cas.pp.es -v (sustituir cas.pp.es por el nombre adecuado)
  • 4º eliminar la entrada, keytool -delete -alias cas.pp.es -keystore cacerts
  • 5º con los certificados nuevos copiados en nuestro directorio de home, lanzar la importación keytool -import -trustcacerts -alias cas.pp.es -file /home/oper/certificados-java/pp.es.cer -keystore cacerts
  • service tomcat6 restart
  • OJO CON NOMIX, ACTUALIZAR ESTA PARTE EN EL APACHE CON LOS NUEVOS CERTIFICADOS

Nota de Gastos

  • Este proceso se realiza en la máquina que contiene el tomcat.
  • 1º situarnos en el directorio del alamcen de certificados java, cd /etc/ssl/certs/java
  • 2º consultar o buscar nuestras entradas con el wildcard, keytool -list -keystore cacerts |grep pp (puede variar el nombre, asegurarnos de que la entrada que sustituimos es la correcta o no nos funcionará)
  • 3º verificar que la entrada es la correcta, keytool -list -keystore cacerts -alias cas.pp.es -v (sustituir cas.pp.es por el nombre adecuado)
  • 4º eliminar la entrada, keytool -delete -alias cas.pp.es -keystore cacerts
  • 5º con los certificados nuevos copiados en nuestro directorio de home, lanzar la importación keytool -import -trustcacerts -alias cas.pp.es -file /home/oper/certificados-java/pp.es.cer -keystore cacerts
  • service tomcat6 restart

Nota de Gastos Territorial

  • Este proceso se realiza en la máquina que contiene el tomcat.
  • 1º situarnos en el directorio del alamcen de certificados java, cd /etc/ssl/certs/java
  • 2º consultar o buscar nuestras entradas con el wildcard, keytool -list -keystore cacerts |grep pp (puede variar el nombre, asegurarnos de que la entrada que sustituimos es la correcta o no nos funcionará)
  • 3º verificar que la entrada es la correcta, keytool -list -keystore cacerts -alias cas.pp.es -v (sustituir cas.pp.es por el nombre adecuado)
  • 4º eliminar la entrada, keytool -delete -alias cas.pp.es -keystore cacerts
  • 5º con los certificados nuevos copiados en nuestro directorio de home, lanzar la importación keytool -import -trustcacerts -alias cas.pp.es -file /home/oper/certificados-java/pp.es.cer -keystore cacerts
  • service tomcat8 restart

Lanza

  • Este proceso se realiza en la máquina que contiene el tomcat.
  • 1º situarnos en el directorio del alamcen de certificados java, cd /etc/ssl/certs/java
  • 2º consultar o buscar nuestras entradas con el wildcard, keytool -list -keystore cacerts |grep pp (puede variar el nombre, asegurarnos de que la entrada que sustituimos es la correcta o no nos funcionará)
  • 3º verificar que la entrada es la correcta, keytool -list -keystore cacerts -alias cas.pp.es -v (sustituir cas.pp.es por el nombre adecuado)
  • 4º eliminar la entrada, keytool -delete -alias cas.pp.es -keystore cacerts
  • 5º con los certificados nuevos copiados en nuestro directorio de home, lanzar la importación keytool -import -trustcacerts -alias cas.pp.es -file /home/lanza/certificados-java/pp.es.cer -keystore cacerts
  • service tomcat6 restart