keytool error: java.lang.Exception: Failed to establish chain from reply

Este error puede ocurrir al importar un certificado SSL a un keystore:

keytool error: java.lang.Exception: Failed to establish chain from reply

En este caso ha sucedido al importar con el comando keytool un certificado SSL del cual previamente habíamos generado un Certificate Request (CSR) en un servidor de aplicaciones tomcat:

# keytool -import -alias mikeystore -keystore tomcat -file www.foo.com.cer
keytool error: java.lang.Exception: Failed to establish chain from reply

El error se produce porque no hemos instalado en el orden correcto (o nos hemos dejado alguno) los certificados de la cadena de confianza:

ROOT Certificate -> Intermediante Certificate -> SSL Certificate

Así que antes de instalar el certificado definitivo debemos importar el resto de certificados que nos facilita la entidad certificadora, y en el orden correcto:

Importamos el certificado ROOT:

# keytool -import -alias root -keystore mikeystore -trustcacerts -file root.cer

Importamos el certificado Intermedio:

# keytool -import -alias root_ca -keystore mikeystore -trustcacerts -file ca.cer

Y finalmente importamos nuestro certificado final:

# keytool -import -alias tomcat -keystore mikeystore -file www.foo.com.cer