Como convertir certificado Let’s encrypt en keystore java para tomcat (jks)

Todos conocemos Let’s encrypt, en un servicio muy comido que nos permite instalar certificados SSL seguros de manera cómoda y gratuita.

Pero desgraciadamente no los crea en formato jks y no podemos utilizarlos en servidores de aplicaciones tomcat.

Pero esto lo podemos solucionar de una manera muy fácil utilizando las herramientas openssl y keytool que nos permiten convertirlo en formato jks.

Lo primero que haremos es con openssl exportar la clave privada (privkey1.pem) y el certificado (fullchain1.pem) y guardarlo en un fichero p12 (fichero.p12) con el siguiente comando:

openssl pkcs12 -export -out fichero.p12 -inkey privkey1.pem -in fullchain1.pem -name "tomcat-cert"

A continuación con keytool generaremos el llavero jks (llavero.jks) con el siguiente comando:

keytool -importkeystore -srckeystore fichero.p12 -srcstoretype pkcs12 -destkeystore llavero.jks

Y ya tendríamos el certificado keystore creado.

Lo ultimo que tendríamos que haces es configurar el server.xml de tomcat para que utiliza el llavero creado, añadiendo la password que usamos para su creación (en el ejemplo “secreta”).

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" URIEncoding="UTF-8"
        keystoreFile="llavero.jks"
keystorePass="secreta" keyAlias="tomcat-cert"
clientAuth="false" sslProtocol="TLS" />