Volver a DocuFirma

Cómo usar certificados P12, PFX y PEM para firmar PDF

Si tienes un .p12 o .pfx, úsalo directamente. Si recibiste archivos PEM separados, puedes reunirlos localmente en un .p12 protegido con contraseña.

Primero identifica lo que recibiste

El formato depende de tu proveedor y de la modalidad de firma contratada. No asumimos que todas las entidades de Ecuador entreguen PEM. Revisa los archivos e instrucciones de tu emisor.

  • .p12 o .pfx: contenedor PKCS#12. Para firmar debe contener tu certificado y su clave privada. Normalmente se abre con una contraseña.
  • .pem: formato de texto que puede contener un certificado, una clave privada o ambos. La extensión por sí sola no dice cuál de ellos contiene.
  • .crt o .cer: suele contener solo el certificado público. Eso no basta para firmar. Puede estar codificado en PEM o DER; esta aplicación admite el contenido PEM.
  • Token USB o firma remota: no equivale a un archivo exportable. Esta versión no integra esos dispositivos o servicios.

Tu certificado público identifica al titular. La clave privada es la que permite firmar y debe permanecer bajo tu control. No subas ninguno de estos archivos a un convertidor en línea.

¿Por qué a veces aparecen dos selectores?

Si el certificado y la clave están en PEM separados, seleccionas el certificado en el primer campo y la clave en «Clave privada PEM». Si un PEM contiene ambos, basta el primer campo. Con .p12/.pfx ambos vienen juntos: seleccionas un archivo e ingresas su contraseña.

Convertir es opcional. DocuFirma admite PEM directamente, pero recordar el archivo entre sesiones está disponible solo para .p12/.pfx. La conversión no crea una nueva identidad ni renueva la vigencia del certificado.

Mac: preparar OpenSSL

Para esta guía usamos OpenSSL 3. Si ya tienes Homebrew, abre Terminal y ejecuta:

brew install openssl@3
export PATH="$(brew --prefix openssl@3)/bin:$PATH"
openssl version

Si no tienes Homebrew, consulta su instalación oficial antes de continuar. No necesitas instalar estas herramientas para firmar en la web, solo para esta conversión opcional. Paquete OpenSSL de Homebrew.

En Terminal, escribe cd , arrastra la carpeta que contiene tus archivos a la ventana y presiona Enter. Así trabajarás en esa carpeta sin escribir su ruta completa.

Windows: OpenSSL en Ubuntu con WSL

Una opción documentada es usar Ubuntu mediante WSL. Si ya tienes OpenSSL 3 instalado por un proveedor de confianza, puedes usarlo directamente y pasar a la conversión.

  1. Si no tienes WSL, abre PowerShell como administrador y ejecuta el comando de abajo. Sigue las instrucciones y reinicia si lo solicita.
  2. Abre Ubuntu desde Inicio y termina su configuración. La contraseña de Ubuntu es distinta de la de tu certificado.
  3. En la terminal de Ubuntu, instala OpenSSL con los comandos indicados.
# PowerShell como administrador
wsl --install -d Ubuntu
# En Ubuntu
sudo apt update
sudo apt install openssl
openssl version

En Ubuntu, la carpeta de Windows C:\Users\Ana\Documents\Firma se encuentra como /mnt/c/Users/Ana/Documents/Firma. Sustituye el usuario y la carpeta por los tuyos:

cd "/mnt/c/Users/Ana/Documents/Firma"

Usa una carpeta personal local. Si está sincronizada con OneDrive u otro servicio, ese servicio puede subir los archivos independientemente de DocuFirma. Microsoft: instalar WSL.

Reunir certificado y clave en un .p12

Necesitas la clave privada que corresponde a ese certificado. En los ejemplos, cambia los nombres por los de tus archivos. Las comillas permiten nombres con espacios. Elige un nombre de salida nuevo para no sobrescribir otro archivo.

Certificado y clave en archivos separados

openssl pkcs12 -export -in "certificado.pem" -inkey "clave.pem" -out "mi-firma.p12"

Un PEM que ya contiene ambos

openssl pkcs12 -export -in "firma-completa.pem" -out "mi-firma.p12"

Si tu emisor entregó certificados intermedios por separado, añade -certfile "cadena.pem" al comando. Usa la cadena proporcionada por tu emisor, sin claves privadas ajenas.

  1. Si la clave original está cifrada, OpenSSL pide su contraseña para leerla.
  2. En Enter Export Password, elige una contraseña nueva y segura para el .p12. Escríbela otra vez cuando lo pida. Es normal que no aparezcan caracteres al escribir.
  3. Conserva esa contraseña: es la que ingresarás en DocuFirma. No la pongas como argumento del comando ni la incluyas en capturas.

Comprueba que el contenedor se puede abrir sin imprimir la clave privada:

openssl pkcs12 -in "mi-firma.p12" -info -noout

Este comando revisa el contenedor; no confirma vigencia, revocación ni aceptación legal. Luego selecciona mi-firma.p12 en DocuFirma y desbloquéalo. Conserva tus originales en un lugar seguro hasta verificar el resultado.

OpenSSL: opciones oficiales de PKCS#12

Si no funciona

  • Solo tengo un certificado público: no se puede reconstruir la clave privada a partir de él. Consulta a tu emisor; generar otra clave no la vincula al certificado existente.
  • No recuerdo la contraseña original: convertir no evita el cifrado. Necesitas la contraseña para abrir la clave protegida. Consulta el procedimiento de tu proveedor.
  • La clave no coincide: comprueba que elegiste el certificado y la clave de la misma emisión.
  • No se encuentra el archivo: revisa el nombre, la extensión y la carpeta actual. No cambies la extensión para simular una conversión.
  • El archivo es DER o aparece un algoritmo no compatible: sigue la documentación de tu emisor. No desactives protecciones ni compartas la clave para resolver el error.