¿Cómo generar un archivo .p12 con openssl?

Published:

Vamos a ver en este tutorial simple, como generar un certificado .p12, donde necesitaremos 2 cosas, por una lado la clave pública y por otro la clave privada para por unirlos en un solo archivo de extensión .p12.

Como dije, necesitamos el certificado SSL (archivo con extensión .cer o .crt) y la key del certificado (archivo .key), pero si además tenemos los certificados intermedios (archivos .cer) voy a mostrar como agregarlo.

1- Generar .p12

openssl pkcs12 -export -in certificado_original.cer -inkey llave.key -name personal -out archivo.p12

2- Generar .p12 con certificado intermedio

openssl pkcs12 -export -inkey llave.key -in certificado_original.cer -out archivo.p12 -certfile multi.pem
  • llave.key: la clave privada del certificado.
  • certificado_original.cer: la clave pública del certificado. Podría ser un archivo .crt.
  • name: le podemos dar un nombre.
  • archivo.p12: el fichero resultante de unir ambas claves.
  • multi.pem: este archivo está compuesto por el contenido de los archivos .cer «extra» que nos envían desde la entidad certificadora; se trata de certificados propios de la entidad que validan que el certificado que vamos a usar ha sido emitido por ellos.

3- Comprobar fecha de caducidad de un .p12

openssl x509 -enddate -noout -in archivo.p12

4- Saber fecha de creación de un certificado .p12

openssl x509 -dates -noout -in archivo.p12

5- Solución a error Unable to load certificate

Si nos da un error al validad el certificado es porque debemos usar otra opción, el mensaje de error por ejemplo es el siguiente

Could not read certificate from archivo.p12
40972A2A9B7F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:../crypto/evp/evp_fetch.c:349:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()
Unable to load certificate

La solución es usar la opción -legacy

openssl pkcs12 -in archivo.p12 -legacy -nodes
- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles