Administración de Almacenes de Certificado .JKS

Cómo verificar una cadena de certificados en un JKS

Esto se puede hacer de varias maneras. Una forma común es simplemente subir el JKS en su entorno y ver si funciona. Sin embargo, esto es un poco riesgoso ya que podría detener el funcionamiento del servicio, es por ello que se debe verificar de manera anticipada, para ello utilizaremos la herramienta keytool.

keytool -list -v -keystore my.certificate.chain.jks

Este comando enumerará todas las certificaciones (y claves) Propietario (CN) y Emisor (CN) algo como esto:

  1. Propietario: CN=app.tankmin.se, OU=Secure Link SSL, OU=Tankmin…
    Emisor: CN= Network Solutions OV Server CA 2 , O=Network Solutions LLC….
  2. Propietario: CN= Network Solutions OV Server CA 2 , O=Network Solutions LLC….
    Emisor: CN= USERTrust Autoridad de Certificación RSA , O=La Red USERTRUST…
  3. Propietario: CN= USERTrust RSA Certification Authority , O=La red USERTRUST…
    Emisor: CN= AddTrust External CA Root , OU=AddTrust External TTP Network…
  4. Propietario: CN= AddTrust External CA Root , OU=AddTrust External TTP Network…
    Emisor: CN=AddTrust External CA Root, OU=AddTrust External TTP Network…

Aquí los reorganizo con mi certificado de aplicación en la parte superior y la certificación de CA raíz en la parte inferior. También le he dado un número a cada entrada para poder explicar más fácilmente la lógica detrás de la cadena.

Crear un almacén de claves JKS

Importante

Le recomendamos generar un nuevo almacén de claves siguiendo el proceso descrito en esta sección. La instalación de un nuevo certificado en un almacén de claves antiguo a menudo provoca errores de instalación o que el certificado SSL/TLS no funciona correctamente. Antes de comenzar este proceso, haga una copia de seguridad y elimine los almacenes de claves antiguos.

Si tiene una clave privada, un certificado SSL y un paquete de certificados de una autoridad certificadora (CA), puede usar OpenSSL para crear un almacén de claves de certificado que Tomcat pueda utilizar.

keytool -genkeypair -alias test -storepass changeit -keypass changeit -keystore emptyStore.jks -dname "CN=Developer, OU=Department, O=Company, L=City, ST=State, C=CA"
keytool -delete -alias test -storepass changeit -keystore emptyStore.jks

Cómo cambiar la Contraseña del almacén de claves JKS

Luego de haber crear una JKS vacía, podríamos necesitar cambiar la contraseñas. Para ello utilizaremos el siguiente comando.

keytool -storepasswd -keystore emptyStore.jks

Cómo cambiar el Alias del almacén de claves JKS

Luego de haber crear una JKS vacía, podríamos necesitar cambiar el alias, o crear un nuevo alias. Para ello utilizaremos el siguiente comando.

keytool -changealias -alias "antiguo" -destalias "nuevo" -keystore emptyStore.jks

Importar par de claves al almacén de claves JKS

Esta sección describe cómo importar un par de claves pública/privada existente en el almacén de claves de Java. Esto es útil si tiene sus propias herramientas para generar un par de claves firmadas por CA. El procedimiento asume que ya tiene los certificados raíz e intermedio, así como la clave privada y su certificado firmado.

Para importar un par de claves existente:

1. Cree la cadena de certificados y convierta la clave privada y los archivos de certificado en un archivo PKCS12.

cat myhost.pem intermediate.pem root.pem > import.pem

openssl pkcs12 -export -in import.pem -inkey myhost.key.pem
-name shared > server.p12

2. Importe el archivo PKCS12 al almacén de claves de Java:

keytool -importkeystore -srckeystore server.p12
-destkeystore store.keys -srcstoretype pkcs12 -alias shared 

3. Finalmente, para completar la preparación del almacén de claves de Java, realice los procedimientos para crear el almacén de confianza del servidor y del cliente descritos en la sección anterior.

Eliminar par de claves al almacén de claves JKS

Utilice el comando para eliminar un certificado existente.keytool -delete

keytool -delete -alias keyAlias -keystore keystore-name -storepass password