Importar certificados de prueba de Thawte en una tienda de claves Java
Pregunta
Estoy tratando de configurar un servidor Tomcat con SSL. He generado un keypair así:
$ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys
A continuación, genero una solicitud de firma de certificado:
$ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr
Luego copio el contenido de tomcat.csr
en un formulario en el sitio web de Thawte, solicitando un certificado SSL de prueba. A cambio obtengo dos certificados delimitados con -----BEGIN ... -----END
, que guardo tomcat.crt
y thawte.crt
. (Thawte llama al segundo certificado un certificado de 'prueba de Thawte CA').
Cuando intento importar cualquiera de ellos falla:
$ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Failed to establish chain from reply
$ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Input not an X.509 certificate
Agregando el -trustcacerts
La opción a cualquiera de estos comandos tampoco cambia nada.
¿Alguna idea de lo que estoy haciendo mal aquí?
Solución
Finalmente entendí lo que estaba pasando aquí. Resulta que las respuestas que obtuve de Thawte están formateadas como PKC#7, mientras que keytool
espera certificado en el formato X.509.
openssl
se puede usar para convertir certificados de un formato a otro:
$ openssl pkcs7 -in thawtetest.crt -print_certs |
openssl x509 > thawtetest.x509
Ahora puedes importar thawtetest.x509
con keytool y tomcat.crt
justo detrás de esto.
Otros consejos
Debería poder importar cadenas PKC#7 usando Keytool, siempre que esté utilizando una versión más reciente. La exportación de los certificados en archivos distintos también funcionará, pero si está ejecutando una versión reciente de KeyTool, no debería haber problemas para importar el archivo PKCS#7 en sí.
Haberme encontrado con el mismo problema que encontré esta publicación Lo que me ayudó. Puse los certificados de prueba que recibí en un solo archivo y usé keytool para importar hacer Seguro que el alias (keytool -alias param) que utilicé fue diferente (es decir, no es el mismo alias que usé al crear los certificados para la solicitud). Es un extraño mensaje de error dado que simplemente no le gusta que intente importar al mismo alias.