![¿Cómo puedo exportar la clave privada de una cadena de certificados?](https://rvso.com/image/1414689/%C2%BFC%C3%B3mo%20puedo%20exportar%20la%20clave%20privada%20de%20una%20cadena%20de%20certificados%3F.png)
Creo un almacén de claves y desde ese almacén de claves genero un archivo CSR y cuando recibo el certificado firmado de CA, importo los certificados raíz e intermedio a mi almacén de claves y finalmente mi certificado firmado. Después de agregar el certificado firmado, recibí la respuesta "la respuesta del certificado se instaló en el almacén de claves". En este formato puedo usar mi almacén de claves en Tomcat; sin embargo, para otro contenedor de aplicaciones solo necesito una clave privada que contenga un archivo codificado en pem. Y
keytool -importkeystore -srckeystore server.jks -destkeystore server.pkcs -srcstoretype JKS -deststoretype PKCS12
openssl pkcs12 -in server.pkcs -out server.pem
parece no funcionar. Recibo un archivo pem que solo contiene información del certificado, no una clave privada.
Entonces, ¿es posible exportar la clave privada después de establecer una cadena de certificados? Si es así ¿cómo?
Respuesta1
El comando openssl pkcs12 que utilizó también debería exportar la clave privada
openssl pkcs12 -in server.pkcs -out server.pem
Supongo que el archivo de entrada p12 no contiene la clave privada.
¿Está seguro de que no aparece algún tipo de advertencia al exportar la clave del archivo p12?
Una cosa que es importante es que parece que JKS admite una contraseña de clave separada y una contraseña de almacenamiento. Al exportar el p12 desde JKS, puede suceder que la contraseña del p12 sea diferente a la contraseña de la clave. Parece que esto no es compatible con openssl (lo acabo de intentar) y genera un error de "descifrado incorrecto". Debe asegurarse de que la contraseña clave sea la misma que la contraseña p12.
Respuesta2
La clave privada de exportación de una cadena de certificados que utilicé después de las consultas,
keytool -importkeystore -srckeystore server.jks -destkeystore server.pkcs
-srcstoretype JKS -deststoretype PKCS12
openssl pkcs12 -in thekeystore.p12 -nocerts -nodes -out serverkey.pem
Entonces, la única diferencia es agregar -nodes -nocerts
parámetros, y funciona de maravilla, esto también funciona para certificados autofirmados.