Quitar la clave o passphrase a un certificado pkcs12 y pem

Quitarle la seguridad a un certificado no es algo recomendable, pero en algunos casos puede que lo necesitemos así. Ya sea para quitarle la frase de paso al conectarnos por curl a algún webservice o api que solicite el certificado, o para cualquier otra cosa.

Lo primero que necesitamos es tener descargado el certificado sobre el que vamos a trabajar, normalmente será un certificado en formato .p12 o .pks, lo dejaremos en una carpeta, porque vamos a generar varios ficheros.

Quitar clave o passphrase de un certificado pem p12

En este artículo utilizaremos ubuntu y su consola con el comando openssl, para instalarlo lo típico, sudo apt-get install openssl. Si estás utilizando mac al ser un entorno unix podrás utilizar los mismos comandos sin problema. En entornos windows actuales te recomiendo utilizar la consola ubuntu.

https://www.openssl.org/

Pasos para quitar la passphrase de un certificado p12

  • 1 – Extraemos el certificado del fichero con el comando, el cual nos creará un fichero con la exteión crt con el certificado:
openssl pkcs12 -clcerts -nokeys -in micertificado.p12 -out cert.crt -password pass:clave -passin pass:clave
  • 2 – Ahora extraemos la clave CA con un comando muy similar al anterior:
openssl pkcs12 -cacerts -nokeys -in micertificado.p12 -out ca-cert.ca -password pass:clave -passin pass:clave
  • 3 – Lo mismo pero para extraer la clave privada del certificado p12, en este caso debemos especificarle una clave temporal que utilizaremos luego para quitarla, puedes usar la misma que ya tenía:
openssl pkcs12 -nocerts -in micertificado.p12 -out private.key -password pass:clave -passin pass:clave -passout pass:clavetemporal
  • 4 – Ahora quitaremos la frase de paso con la contraseña que hemos puesto anteriormente:
openssl rsa -in private.key -out private_sinclave.key -passin pass:clavetemporal
  • 5 – Ahora podremos ver que hemos generado 4 ficheros nuevos, dos de ellos terminan en .key, con la diferencia que uno de los dos está protegido y el otro no. Con el siguiente comando generaremos un fichero .pem que no estará protegido por contraseña (passphrase).
cat private_sinclave.key cert.crt ca-cert.ca > cert.pem
  • 6 – Ahora si queremos volver a generar un fichero p12 que no nos pida contraseña al abrir ni al instalar, ejecutaremos el siguiente comando, el cual a partir del pem generado anteriormente creará el certificado pkcs12 sin contraseña.
openssl pkcs12 -export -nodes -CAfile ca-cert.ca -in cert.pem -out cert_sinclave.p12

Ya tenemos nuestros certificado sin la contraseña, el pem que podemos utilizar con curl para hacer peticiones a servicios que requieran autentifican con certificado y el p12 que podemos instalar en cualquier ordenador sin necesidad de poner contraseña.

Generar certificado pem sin passphrase

Si lo único que queremos es generar un fichero pem sin passphrase, debemos quedarnos en el paso número 5, no hace falta que sigamos y generar un fichero p12 sin contraseña.

Así evitaremos tener circulando por ahí un certificado sin clave, algo que es altamente inseguro y poco recomendable.

Deja un comentario