DocuFirma

Tu firma, en tu equipo.

El editor no se muestra correctamente

No pudimos cargar o restaurar el editor. Conéctate a internet y vuelve a cargar la página para empezar de nuevo.

Volver a cargar

Al recargar, tendrás que volver a elegir tus archivos y desbloquear el certificado.

Tus archivos y tu clave privada permanecen en tu equipo.

Volver a DocuFirma

Privacidad al firmar un PDF en el navegador

Conoce cómo se procesan el PDF y el certificado, qué datos puede incluir un reporte voluntario y cómo comprobar las solicitudes de red. Versión del 14 de noviembre de 2026. El número de versión de DocuFirma aparece al pie del editor.

Compatibilidad y ayuda con errores

La pantalla inicial de DocuFirma llega en el HTML del servidor y permanece visible mientras se carga el editor en tu navegador. Su animación no indica progreso ni confirma que puedas desconectarte. Espera el mensaje «Listo sin conexión» en el editor antes de elegir tus archivos sin internet.

Antes de abrir el editor comprobamos las funciones necesarias del navegador. Si faltan, mostramos una pantalla con instrucciones para continuar. Usa la dirección segura del sitio, que comienza con HTTPS. Recordar el certificado es opcional y su ausencia no impide firmar.

Hemos comprobado la preparación y la firma sin conexión en versiones actuales de Chrome, Firefox (también en Android) y Safari, desconectando la red después de preparar. Otros navegadores modernos pueden funcionar; si falta una función necesaria, la comprobación inicial te lo indica.

Si la preparación falla, los archivos y la contraseña permanecen deshabilitados. Abre «Ver detalles y reintentar» para conocer el motivo y su código. Cada etapa tiene códigos estables, como FIRMA-PREP-ASSETS o FIRMA-CERT-EXPIRED. Un error de contraseña incorrecta no abre un formulario de reporte, porque no es un fallo técnico.

Reportes voluntarios de errores

Ante ciertos fallos técnicos ofrecemos «Informar este error». La aplicación prepara datos técnicos únicamente cuando ocurre un error: versión del formato, identificador aleatorio del incidente, código y mensaje estable, etapa, clase segura de excepción (por ejemplo, TypeError), hora, navegador, plataforma, idioma, zona horaria, tamaño de pantalla y área visible, y escala de píxeles. Esta información permanece en esta pestaña hasta que decides enviarla. No se registra el uso normal ni se envían reportes automáticamente.

Antes de enviar, el formulario muestra todos los datos técnicos, el correo opcional y el comentario que escribiste. La aplicación no adjunta ni recopila automáticamente el PDF, su nombre, el certificado, la clave privada, la contraseña, la identidad del firmante ni la imagen de firma. Tampoco envía el mensaje o stack originales de JavaScript, que podrían incluir texto del documento o rutas locales. El comentario es texto libre: podría contener esos datos si los pegas. Sin la traza, el reporte permite agrupar fallos por código, etapa y navegador, pero no indica la función, el archivo o la línea exactos. El formulario requiere que pulses «Enviar reporte»; si no lo envías, no queda guardado ni se pone en una cola local. El servidor solo acepta reportes enviados desde una página de este mismo sitio, con un tamaño limitado y una hora del incidente en formato estricto; rechaza los demás sin guardarlos.

Si dejas el correo en blanco y no escribes datos que te identifiquen, el reporte se envía de forma anónima. El correo y el comentario sí pueden identificarte si los incluyes. Si compartes tu correo, el equipo podrá pedirte más detalles y avisarte cuando corrijamos el problema. En localhost, el reporte se guarda en el KV local; en el sitio publicado, se guarda en el espacio KV de Cloudflare durante 90 días. Cloudflare procesa metadatos normales de conexión, como la dirección IP, pero no los añade al registro del reporte. Para frenar envíos automáticos, el servidor admite hasta 6 reportes por hora desde cada dirección IP. Para contarlos no guarda la dirección, sino una huella irreversible calculada con una clave aleatoria que cambia cada hora, y la borra al terminar esa hora. Si las notificaciones del equipo están configuradas, el reporte también se envía a Slack.

Qué significa «local»

El navegador puede conservar las herramientas públicas, fuentes e imágenes durante dos años para acelerar visitas posteriores. Cada versión usa una dirección distinta cuando cambia su contenido. La página, la lista de preparación y el controlador de recursos locales se mantienen actualizados para cargar las nuevas versiones. Si la lista de preparación corresponde a otra versión que la página abierta, la preparación se detiene con el código FIRMA-PREP-RELEASE y te pide recargar con conexión. Una recarga forzada con conexión vuelve a completar la preparación antes de habilitar los archivos. Después de preparar, borramos de la caché las herramientas de versiones más antiguas que la actual y la anterior, para que otra pestaña abierta con la versión anterior siga funcionando. Esta caché contiene recursos del sitio, no tus documentos, certificados ni contraseñas.

La dirección del servicio es https://docufirma.org. Si entras por www.docufirma.org, el servidor te redirige a esa dirección antes de cargar las herramientas. Esta redirección no recibe tus archivos ni la contraseña.

Cuando visitas DocuFirma en docufirma.org, nuestro sitio entrega las herramientas a tu navegador. Todo el trabajo con tus archivos ocurre en tu equipo: leer el PDF, desbloquear el certificado con tu contraseña y generar el documento firmado. No enviamos tu PDF, certificado, clave privada ni contraseña a nuestros servidores, ni los guardamos allí.

Además, cada respuesta del sitio incluye una política de seguridad de contenido (Content-Security-Policy) que tu navegador hace cumplir, junto con otros encabezados de seguridad: la página y sus herramientas solo pueden conectarse con docufirma.org. El navegador bloquea cualquier solicitud a otro dominio, incluso si un error en nuestro código lo intentara, y solo ejecuta el código publicado en este sitio. Puedes ver estos encabezados en Network / Red, en la respuesta de cada solicitud. Los enlaces a otras páginas siguen funcionando porque abrirlos es una navegación tuya, no una conexión de la página. Esta política no limita a las extensiones del navegador; revisa la sección sobre extensiones más abajo.

Deslizar y ampliar el PDF con los dedos, colocar firmas y cambiar su tamaño también ocurre en tu navegador, sin descargar recursos adicionales ni enviar datos del documento. En pantallas táctiles mostramos una guía para colocar la firma, incluso antes de añadir el certificado; el certificado sigue siendo obligatorio para firmar. «Ver PDF» abre una vista local en otra pestaña. «Descargar PDF» intenta guardar el archivo; en iPhone o iPad, cuando el navegador lo permite, abre el menú del dispositivo para que elijas «Guardar en Archivos». DocuFirma no sube el PDF. Si eliges otra aplicación o un destino en la nube en ese menú, el dispositivo entregará el archivo al destino que selecciones.

Durante la preparación consultamos una vez la hora del servidor, sin enviar archivos, contraseñas ni nombres de documentos. Comparamos esa hora con el reloj del dispositivo, teniendo en cuenta el tiempo de respuesta. Si la diferencia supera cinco minutos, mostramos un aviso, pero puedes continuar. Conservamos el resultado de esa comprobación durante la sesión; no calculamos diferencias nuevas al volver a la pestaña ni antes de firmar. Para comparar de nuevo después de cambiar el reloj, recarga la página. Si la respuesta falla, tarda demasiado o el equipo se suspende durante la consulta, indicamos que no se pudo comparar. No enviamos al servidor la hora del dispositivo ni datos del documento. El PDF usa la hora del dispositivo; este aviso no certifica cuándo se hizo la firma.

El servicio es gratuito y no requiere cuenta ni instalar software. Necesitas tu propio certificado vigente; obtenerlo o renovarlo puede tener un costo con su emisor. Esta versión admite certificados en archivos .p12, .pfx y PEM. No ofrece integración con tokens USB.

Del archivo al PDF firmado

  1. Seleccionas el PDF y tu certificado. El selector de archivos no los sube a internet.
  2. La aplicación lee esos archivos en la memoria del navegador. La contraseña sirve para desbloquear la clave privada localmente.
  3. Al desbloquear el certificado ves «Así se verá tu firma», una vista previa de la marca con tu nombre, dibujada en tu navegador.
  4. Tu navegador genera la firma electrónica con tu clave privada y la incorpora al PDF.
  5. Guardas el PDF firmado directamente desde tu navegador en tu equipo.

El PDF final sí incluye el certificado público y datos de identidad necesarios para verificar la firma. No incluye la contraseña, la clave privada ni una copia del archivo .p12.

Después de firmar, la vista queda en solo lectura y oculta las herramientas de edición. Abrir el PDF y volver mantiene ese modo. «Editar de nuevo» abre el borrador del archivo original y conserva los enlaces del último PDF firmado; los cambios solo aparecen en un nuevo archivo cuando vuelves a firmar. Abrir otro PDF o cerrar la sesión termina ese trabajo local.

La marca visible de la firma se dibuja como texto y trazos vectoriales en la página del PDF para que conserve nitidez al ampliarla. El campo de firma permanece en el documento para consultar y verificar la firma electrónica. Con Manrope, Outfit, DM Sans (predeterminada) o Caveat, el nombre y las iniciales usan una sola copia incorporada de la tipografía, compartida por todas las firmas de la operación. Helvetica, Times y Courier son tipografías estándar del PDF y no se incorporan. La fecha y el encabezado usan una tipografía estándar del PDF cuando sus caracteres lo permiten. Los iconos se dibujan como trazos vectoriales.

Por defecto se usan las iniciales de las tres primeras palabras del nombre, o de todas si tiene menos: Juan Daniel Cárdenas Arboleda firma como JDC. Las palabras de enlace «de», «del», «la», «las», «los» e «y» no cuentan. Si la entidad certificadora registra nombres y apellidos por separado, esos campos fijan el orden, aunque el nombre del certificado empiece por los apellidos. Puedes personalizar las iniciales con entre dos letras y el número de palabras de tu nombre, en cualquier orden y sin usar cada inicial más veces de las que aparece en el nombre. Puedes escribirlas sin tildes, con espacios o puntos; el PDF siempre recibe las letras tal como figuran en el certificado. Se rechazan las letras de otros alfabetos que solo se parecen a las del nombre y los caracteres invisibles. Se comprueban al salir del campo y se aplican igual en la vista y en el PDF, sin solicitudes de red. Si el nombre tiene una sola palabra, conserva su inicial. La vista del navegador usa un lienzo con resolución limitada para cuidar la memoria; esa resolución no cambia los textos ni los trazos vectoriales del PDF descargado.

¿Cómo funciona técnicamente?

JavaScript no trae una función única para firmar PDF. DocuFirma combina APIs estándar del navegador con bibliotecas JavaScript especializadas. Las herramientas se preparan antes de habilitar los archivos; después, el documento y el certificado se procesan en la sesión del navegador.

APIs del navegador

  • Leer archivos: File.arrayBuffer() obtiene los bytes del PDF y del certificado. TextDecoder convierte el PEM en texto y TextEncoder codifica en bytes el contenido gráfico que se añade al PDF. Consulta la API File y Blob.
  • Criptografía: crypto.subtle.importKey(), sign() y verify() comprueban localmente que la clave privada de un archivo P12/PFX o PEM corresponda al certificado. El orden de los certificados no determina el titular. Los contenedores P12/PFX con varias claves o varios certificados distintos para la misma clave se rechazan por ambigüedad. crypto.getRandomValues() genera el reto de comprobación; crypto.randomUUID() crea identificadores de campos. Web Crypto API.
  • Trabajo en segundo plano: Worker y postMessage() permiten crear y actualizar el PDF sin bloquear la interfaz. El worker recibe los bytes del PDF y los datos públicos del certificado, pero no la contraseña ni la clave privada. Cuando necesita una firma, la solicita al firmante que permanece en la página principal. Consulta Web Workers.
  • Preparación sin conexión: un Service Worker y la Cache API guardan antes de elegir archivos los recursos públicos de PDF.js, workers y fuentes que necesita la aplicación. Durante la lectura y firma, esos recursos se sirven desde la caché; si falta uno, no se descarga de internet. Consulta Service Workers y Cache API.
  • Descargar el resultado: Blob y URL.createObjectURL() entregan al navegador el PDF terminado para guardarlo en tu equipo. URL.revokeObjectURL() libera esa URL temporal. Consulta la API URL.

Bibliotecas de esta versión

  • @libpdf/core (0.5.2) lee y modifica el PDF, desbloquea certificados .p12 y .pfx protegidos con contraseña y crea las firmas separadas. El formato predeterminado es PKCS#7, el mismo que escribe FirmaEC y el adecuado para la mayoría de trámites. Al final de «Opciones avanzadas», la línea «Formato técnico» permite elegir CAdES con perfil PAdES B-B; hazlo solo si la entidad receptora lo pide, por ejemplo un validador europeo. Ambos usan SHA-256. PKCS#7 no se presenta como PAdES B-B: son perfiles distintos. La confirmación siempre muestra el formato; debajo del botón «Firmar documento» solo aparece cuando no es el predeterminado. Todas las ubicaciones de una operación usan el mismo formato, sin cambiar las firmas anteriores. El cambio se procesa localmente, sin descargas adicionales.
  • pdfjs-dist (6.4.299) dibuja la vista previa del documento y sus páginas.
  • pkijs (3.4.1) y asn1js (3.0.10) interpretan certificados X.509 y estructuras ASN.1/DER usadas por los certificados y las claves PEM.

Qué descargamos antes de firmar

Al abrir la página, descargamos las herramientas para leer y firmar PDF, junto con las tipografías disponibles. Son recursos del sitio, iguales para todos los usuarios. Esta preparación ocurre antes de que puedas seleccionar tus archivos.

Las herramientas quedan disponibles en tu navegador. Después de la preparación, abrir tu PDF, desbloquear el certificado y firmar no requieren conexión con nuestros servidores. El PDF se genera en segundo plano dentro de tu navegador para que puedas ver el avance si la operación tarda. Tus archivos no se envían a otro equipo. Si la preparación falla, te mostramos cómo reintentar antes de continuar.

Puedes firmar con internet conectado o desconectado. En ambos casos, tus archivos y tu contraseña se procesan localmente. La conexión inicial sirve para cargar el sitio y sus herramientas.

Haz la prueba sin internet

  1. Abre DocuFirma con conexión y espera la preparación automática antes de elegir archivos personales. Puedes revisar su estado en «Todo se procesa en tu equipo».
  2. Espera el mensaje «Listo sin conexión». Se descargan herramientas de PDF y fuentes; se guardan únicamente recursos públicos en la caché de tu navegador.
  3. Desconecta el Wi-Fi y cualquier otra conexión de internet de tu equipo. Mantén abierta la pestaña, sin recargarla.
  4. Ahora selecciona un PDF y tu certificado, escribe la contraseña, ubica las firmas y confirma.
  5. Al abrir el PDF puedes ubicar firmas de inmediato. En documentos largos, la primera página aparece en cuanto se lee y las demás se cargan en segundo plano en tu equipo («Cargando página N de M…»). Después de firmar, la vista queda en modo de solo lectura. Selecciona «Editar de nuevo» sobre el PDF para editar el original. Al volver a editar, desaparece la confirmación y puedes firmar de nuevo mientras el certificado siga abierto.
  6. Descarga el PDF firmado. Cierra la pestaña de DocuFirma antes de volver a conectar internet si deseas completar la prueba sin conexión.

Esta función prepara la sesión actual. No promete abrir el sitio desde cero sin internet. No hay una cola de documentos o contraseñas pendiente de enviar al reconectarte. El navegador puede administrar o eliminar su caché; si la preparación falla, no mostramos que está lista.

Si sueltas un archivo fuera de la zona indicada, DocuFirma evita que el navegador lo abra y cierre la sesión; si es un PDF y la sesión lo permite, lo abre localmente como con «Abrir PDF». Si un PDF tarda más de dos minutos en abrirse, la apertura se cancela en tu equipo y se muestra un error; no se envía el archivo a ningún servidor.

Si el navegador cierra la sesión mientras la pestaña está inactiva, los archivos y el certificado desbloqueado que estaban en memoria pueden perderse. Si el editor no carga o vuelve sin sus estilos, mostramos una pantalla de recuperación incluida en el HTML, sin depender de la caché de herramientas. Si conservamos las reglas públicas de estilo en memoria, las restauramos localmente antes de mostrar esa pantalla. Esta comprobación ocurre al cargar o volver a la pestaña: no envía datos ni vuelve a descargar herramientas. Ante un fallo conserva un diagnóstico en esta pestaña: versión de la pantalla, fase, tiempo desde la carga, tipo de navegación, navegador y estado de los estilos. Puedes revisarlo y copiarlo para compartirlo; no lee archivos, nombres de archivos, campos, contraseñas ni excepciones originales, y no lo envía ni lo guarda en almacenamiento persistente. «Volver a cargar» reinicia la página con internet y requiere elegir los archivos y desbloquear el certificado otra vez. No recargamos automáticamente una sesión de trabajo.

Safari puede restaurar una pestaña inactiva desde una copia antigua de una versión anterior de DocuFirma, cuyos estilos y programas ya no existen; se vería sin diseño y detenida en «Cargando el editor…». Cuando esa copia pide un programa que ya no existe, el servidor responde con una instrucción para recargar la página una sola vez y pide al navegador borrar su caché web de este sitio. Mientras tanto, en lugar de la página sin diseño se ve un aviso breve: «Actualizando DocuFirma…». Esa copia no contiene tus archivos ni tu certificado: es la página recién restaurada, sin una sesión de trabajo.

Comprueba las solicitudes de red

Puedes desbloquear tu certificado antes de elegir el PDF: ese paso no necesita descargas. La preparación termina antes de habilitar los archivos y la contraseña. No descargamos herramientas al abrir tu PDF, desbloquear o firmar.

  1. Abre las herramientas de desarrollo y entra a Network / Red. La consola no muestra por sí sola todo el tráfico.
  2. Activa «Preserve log / Conservar registro» y observa la carga inicial y la preparación. Verás recursos de la aplicación, fuentes y herramientas PDF.
  3. Limpia el registro y realiza una firma con documentos de prueba. Revisa todas las solicitudes, no solo Fetch/XHR: su destino, método, parámetros y contenido enviado.
  4. No deben aparecer el contenido del documento, nombres de archivos personales, certificados, claves ni contraseñas en esas solicitudes.
  5. Para una prueba más clara, desconecta físicamente la red después de preparar la sesión. Un recurso servido por un service worker o por caché puede aparecer en el panel sin haber viajado por internet.

Evita compartir un archivo HAR o capturas que contengan datos personales. No pegues comandos de terceros en la consola. Una inspección de red demuestra el comportamiento observado en esa sesión; no certifica cualquier versión futura ni descarta extensiones maliciosas.

Solicitudes de extensiones: cómo distinguirlas

Extensiones que tengas instaladas, como 1Password, Bitwarden o herramientas de traducción, pueden añadir elementos a la página y cargar sus propios recursos. No son componentes incluidos por DocuFirma. El nombre de un archivo no basta para saber de dónde viene.

  1. Selecciona la entrada en Network / Red y revisa la URL completa en Headers / Encabezados. Una URL chrome-extension://… identifica un recurso del paquete local de una extensión en Chrome y otros navegadores Chromium. Firefox usa moz-extension://…. Otros navegadores pueden usar esquemas distintos.
  2. Revisa Initiator / Iniciador y la cadena de llamadas para saber qué código inició la carga. Compara el identificador con las extensiones instaladas. Una URL local de extensión no es, por sí misma, una conexión a un servidor de internet.
  3. No confundas el iniciador con el destino. Una extensión también puede hacer solicitudes https:// o conexiones wss:// a servidores externos. Eso sí puede ser tráfico saliente, aunque no lo origine DocuFirma. No garantizamos el comportamiento de tus extensiones.
  4. Para aislar la prueba, utiliza un perfil sin extensiones. En modo incógnito o privado, comprueba que ninguna extensión tenga permiso para ejecutarse. El panel de una pestaña no necesariamente muestra toda la actividad de fondo de las extensiones.

Fuentes: recursos de extensiones en Chrome y URLs de extensiones en Firefox.

Recordar tu certificado es opcional

Después de elegir un archivo .p12 o .pfx, la opción «Recordar este archivo en este navegador» aparece debajo del botón para desbloquearlo, sin desplazar la contraseña. Si la marcas, el navegador te pide seleccionar ese archivo otra vez mediante un permiso de lectura. Después de desbloquearlo, también puedes usar «Recordar archivo» junto a «Cambiar certificado», incluso después de firmar. Debes elegir el mismo archivo; comprobamos su contenido localmente antes de recordar su acceso. Tu navegador guarda una referencia de acceso al archivo en los datos locales de este sitio. No guardamos una copia del certificado, su contraseña ni la clave descifrada. La referencia puede identificar el archivo y permitir volver a leerlo: no es una ruta de texto ni acceso a toda tu carpeta.

En la siguiente sesión intentamos leerlo solo si el permiso sigue concedido. Si no, verás un botón para autorizar el acceso. Durante esa comprobación local, el selector permanece visible y deshabilitado. Al terminar, mostramos el certificado recordado si pudimos abrirlo; de lo contrario, puedes autorizar el acceso o elegir otro archivo. La contraseña y el botón «Desbloquear certificado» permanecen deshabilitados hasta que autorices el acceso. Después podrás ingresar la contraseña y desbloquearlo. Mover, eliminar o reemplazar un archivo puede invalidar la referencia, según el navegador y el sistema operativo. En ese caso debes seleccionarlo nuevamente. No buscamos en otras carpetas ni conocemos su ruta absoluta.

Pulsa «Olvidar y elegir otro» para eliminar la referencia. También puedes borrar los datos del sitio y revocar sus permisos desde el navegador. Cerrar la sesión borra el trabajo de esa sesión, pero no elimina una preferencia que decidiste recordar. Úsala solo en tu equipo personal. Los navegadores sin esta función y los archivos PEM mantienen la selección manual.

Qué se guarda y qué no

  • En memoria: archivos seleccionados, certificado abierto, clave de firma y PDF generado durante la sesión. La contraseña del formulario se limpia al intentar abrir el certificado.
  • En tu navegador: recursos públicos de la aplicación en caché; solo si lo autorizas, la referencia al archivo del certificado; y, en el almacenamiento local, una marca de que ya viste el mensaje de bienvenida, otra de que ya viste la guía de uso, contadores de las veces que explicamos cómo deshacer y cómo mover con el teclado, y las opciones de firma que elegiste. La aplicación no crea cookies.
  • En tu disco: el PDF que tú decides descargar y los archivos originales que ya tenías.
  • En el alojamiento web: solicitudes normales para entregar la aplicación. El proveedor puede recibir tu IP y datos técnicos de conexión. Eso es distinto de subir documentos o certificados.

No hay cuentas, base de documentos, publicidad, analítica de comportamiento ni grabación de sesiones en esta versión. Liberamos las referencias de trabajo al cerrar la sesión; JavaScript no puede garantizar un borrado forense inmediato de toda la memoria.

En la primera visita aparece un mensaje de bienvenida sobre el procesamiento local. Al cerrarlo o elegir cualquiera de sus dos opciones, guardamos una marca en el almacenamiento local del navegador para no mostrarlo de nuevo automáticamente. Puedes volver a abrir la explicación detallada desde «Todo se procesa en tu equipo» en la página principal.

Después de la bienvenida, una guía breve señala dónde elegir el certificado, escribir la contraseña, abrir el PDF, personalizar la firma y firmar. Mientras está abierta, la página no responde a clics; la guía abre un momento las opciones avanzadas y las vuelve a cerrar. Cuando aparece, guardamos una marca en el almacenamiento local del navegador para no mostrarla de nuevo automáticamente. Puedes verla otra vez desde «Ver la guía de uso», al pie de la página principal. La guía viene con la aplicación ya cargada: no descarga nada ni envía datos.

Al eliminar una ubicación de firma aparece un aviso con «Deshacer». Las dos primeras veces en este dispositivo también indica el atajo de teclado (⌘Z en Mac, Ctrl+Z en Windows y Linux); en pantallas táctiles, solo el botón. Después el aviso se reduce a una línea. Para recordarlo guardamos un contador en el almacenamiento local del navegador, no una cookie: no se envía al servidor ni contiene datos del documento o del certificado.

Las dos primeras veces que arrastras una firma con el ratón, otro aviso explica el ajuste fino con el teclado: las flechas mueven la firma seleccionada 1 punto y Shift con una flecha, 10 puntos. En pantallas táctiles no aparece. También se recuerda con un contador local.

Las opciones avanzadas de la firma (tipografía, título, borde, logo y diseño del logo) también quedan guardadas en este navegador para la próxima vez. El título se guarda tal como lo escribes. De las iniciales solo guardamos qué palabras del nombre usaste (por ejemplo, la primera, la segunda y la tercera), nunca las letras ni el nombre; al abrir un certificado se aplican a su nombre y, si no encajan, se usan las iniciales predeterminadas. El formato técnico no se guarda: cada sesión empieza con PKCS#7. «Volver a las opciones predeterminadas», en las opciones avanzadas, borra todo esto tras pedirte confirmación.

Límites de seguridad y validación

El código de la página puede leer los archivos que autorizas y la contraseña que ingresas. Debes confiar en la versión que recibes, tu navegador y tu equipo. Ni una promesa de privacidad ni una política de seguridad sustituyen una revisión independiente. Un equipo comprometido o una extensión maliciosa quedan fuera de esta garantía de funcionamiento.

La clave importada para firmar se configura como no exportable. Esto reduce la posibilidad de extraerla mediante la API, pero no impide que código con acceso a ella la use para firmar. Tampoco significa que el archivo original nunca estuvo en memoria.

La apariencia visible se guarda dentro del campo de firma del PDF, donde puedes seleccionarla para inspeccionarla en un lector compatible. Conservamos exactamente los bytes del PDF que recibes y añadimos las firmas al final del archivo, sin modificar el contenido de las páginas. Solo si un PDF todavía sin firmas no admite ese tipo de actualización, por ejemplo porque su estructura interna está dañada, lo reescribimos una vez antes de firmar; un PDF que ya tiene firmas nunca se reescribe. En nuestras pruebas con validadores independientes, las firmas anteriores siguen cubriendo su versión del documento y la firma nueva se clasifica como relleno de formulario. Eso no demuestra que una firma anterior sea válida ni sustituye la evaluación de sus permisos.

Puedes añadir firmas a un PDF optimizado para la web (linealizado), aunque ya tenga firmas; pierde la carga rápida por partes. Rechazamos documentos certificados y aquellos cuyas firmas bloquean campos o restringen cambios, porque este flujo no puede evaluar esos permisos. Los derechos de uso ampliados de Adobe Reader no impiden firmar; como con cualquier firma, esas funciones adicionales dejan de aplicarse.

Comprobamos localmente la correspondencia entre la clave y el certificado y las fechas de vigencia. No descargamos certificados emisores ni consultamos servidores de validación durante el desbloqueo, la firma o la exportación.

La firma usa el reloj del equipo, no un sello de tiempo de una autoridad. Esta versión no consulta revocación, no incorpora datos de revocación para validación a largo plazo ni afirma que una firma previa sea válida. Comprueba el documento final con un validador independiente y los requisitos de la entidad que lo recibirá. La integridad criptográfica, la confianza en el certificado y la aceptación de una entidad son comprobaciones distintas. Detectar una firma o mostrar su apariencia no equivale a validarla.

Compatibilidad con FirmaEC: hasta el 20 de octubre de 2026, FirmaEC no podía leer los firmantes de los PDF firmados con DocuFirma y mostraba «No se ha podido obtener la información de los firmantes del PDF», aunque la firma fuera correcta. La causa estaba en cómo se guardaban las tipografías del formulario del PDF, no en la firma. La versión actual corrige ese formato y la comprobamos localmente con la biblioteca de verificación de FirmaEC. Si recibiste ese mensaje con un archivo anterior, vuelve a firmar desde el PDF original, no desde el archivo rechazado.

Referencias técnicas