Importar un certificado x509 (.crt .cer .der) y su clave privada en un keystore

Para importar un certificado x.509 (.crt .cer .der) y su clave privada en un keystore de java, previamente es necesario convertir el certificado y su clave privada en un archivo PKCS12. Una vez realizado, keytool de java ya nos permite importar el PKCS12 en un keystore.

Convertir clave privada y certificado a formato PKCS12

Utilizaremos openssl para hacer la conversión:

$ openssl pkcs12 -export -out foo.pfx -inkey foo.key -in foo.crt -name foo
  • foo.pfx: fichero PKCS12 de destino
  • foo.key: clave privada en formato X509
  • foo.crt: certificado en formato X509
  • foo: alias del certificado

Importar archivo PKCS12 en un keystore

Una vez que tenemos el archivo pfx, ya podemos utilizar la herramienta keytool para importar el certificado en un keystore:

$ keytool -importkeystore -deststorepass password -destkeypass password \
  -destkeystore keystore.jks -srckeystore /tmp/foo.pfx \
  -srcstoretype PKCS12 -srcstorepass password -alias foo
  • deststorepass: contraseña del keystore de destino
  • destkeypass: contraseña a asignar a la private key en el keystore
  • destkeystore: ruta al keystore
  • srckeystore: ruta al archivo PKCS12
  • srcstorepass: contraseña del archivo PKCS12 (especificada en el paso anterior)
  • alias: alias del certificado (especificado en el paso anterior)