Si tienes que relacionarte con la Administración en España, más pronto que tarde tendrás que instalarte el programa Autofirma. Se trata de un programa escrito en Java, que pesa un montón, y que básicamente sirve para firmar archivos digitalmente a partir de un certificado digital. Las páginas oficiales lo utilizan para firmar solicitudes, entradas de documentos y cosas por el estilo. También lo puedes utilizar de manera autónoma para firmar archivos digitalmente.

Por defecto funciona bien con los infames certificados de la Fábrica Nacional de Moneda y Timbre. Pero en ocasiones, y especialmente si quieres utilizarlo con tu DNI digital (DNIe), al lanzarlo desde un navegador no te funcionará. Se abrirá una ventanita para seleccionar un certificado pero con la lista vacía:

La lista de certificados de Autofirma, vacía

Las únicas posibilidades que te da son refrescar la lista (no vale par nada), intentar cargar un archivo con un certificado (tampoco funciona), y un inútil botón de ayuda.

Mal. Muy mal.

Por suerte la solución es fácil, e implica engañar a la aplicación, de manera simple, para hacer que funcione con una versión más moderna de la plataforma Java.

Pero antes...

Importante: ¿tienes la versión más reciente de Autofirma?

Antes de nada, asegúrate de que tienes la versión más reciente de Autofirma. Como el programa no se actualiza solo, puede que lo hayas descargado hace años y tengas una versión muy antigua.

Vete a la página de descarga de Autofirma y hazte con la versión apropiada para tu sistema operativo. En el caso de Windows, si dudas entre la versión de 32 o de 64 bits, descarga la de 64 bits. Si al ir a instalar te dice que no la puede ejecutar, entonces usa la de 32, pero sería raro hoy en día.

Página de descarga de Autofirma

Fíjate que vienen dentro de un archivo ZIP y lo que tienes que hacer es descomprimirlo para ejecutar el instalador (es absurdo y otro obstáculo más que venga en un ZIP puesto que el instalador ya va comprimido y no ahorran nada de espacio, pero ¿para qué facilitarle la vida al ciudadano? 😉). También te obligará a cerrar el navegador Chrome s lo tienes abierto. En fin...

Una vez hayas instalado la última versión, prueba de nuevo. Quizá con eso ya se haya solucionado.

Importante 2: ¿Tu DNI digital es válido?

Si lo que estás intentando es utilizar el certificado de tu DNI digital debes cerciorarte antes de que el que tienes es válido. Debido a un problema de seguridad con los chips criptográficos del DNIe en España (y en la mayor parte de los países del mundo, ya que usan el mismo) todos los DNIe con certificados que no hayas obtenido al menos en 2020, seguramente no te funcionarán porque se invalidaron.

Cerciórate de ello (puedes preguntar en cualquier oficina de la Policía nacional donde hagan DNIs) porque lo más probable es que sea así. Si lo has renovado en 2020 seguro que no tienes problema, y si no, puedes solicitar una renovación gratuita por este hecho. En cualquier caso necesitarás también saberte el PIN para poder acceder al certificado. Si no te lo sabes puedes ir a una maquinita de las que hay en las comisarías donde hacen DNIs y crear un nuevo PIN usando tu huella dactilar.

Importante 3: ¿Has obtenido o renovado tu certificado de la FNMT con Firefox?

Muchas personas solicitan o renuevan sus certificados de la FNMT utilizando el navegador Firefox. Algunos porque es su navegador por defecto (bien por ti si es tu caso) pero muchos otros porque, es tan complicado conseguir el certificado con otros navegadores, que lo instalan solo para eso.

El problema es que Firefox no guarda los certificados en el almacén de certificados digitales del sistema operativo, sino en su propio almacén. Por ello, solo están disponibles en Firefox y no te aparecerán en otros navegadores o programas, como Autofirma. Quizá este sea tu caso, antes de llegar a la solución más general.

Antes de nada asegúrate de si tienes o no instalado el certificado en tu sistema. En Windows busca la palabra "Certificados", ejecuta el gestor de certificados personales que te aparece y vete a Personal > Certificados. En macOS debes ir a la aplicación Llavero (Keyring) y biscafrlo ahí. Si está en el sistema no hace falta que hagas nada de esto de Firefox y verte al punto siguiente.

Si no los tienes en el sistema, para asegurarte de que están correctamente instalados en el sistema operativo, y solo si has utilizado Firefox para solicitarlos/renovarlos, debes ir a la configuración de Firefox (en versiones recientes se llama Ajustes), apartado Privacidad y seguridad y dentro de éste, abajo del todo, a Certificados > Ver Certificados, seleccionar el que te interese (o todos) y utilizar el botón Hacer copia:

La secuencia de pasos para ir a certificados en Firefox

Esto exportará el certificado (o certificados) a un archivo con extensión .p12 que podrás incorporar al repositorio de certificados del sistema como te explico en este vídeo.

Nota:  si al ir a exportar los certificados te da un error que dice "Se produjo un fallo por motivos desconocidos al guardar la copia de seguridad del archivo PKCS #12", sigue las instrucciones que da la FNTM para solucionarlo que, básicamente, son desinstalar los certificados raíz de la FNMT de Firefox, hacer el backup, y luego volver a instalarlos 🤦🏻‍♂️

Una vez estén en el sistema, puedes intentar abrir de nuevo Autofirma a ver si te aparecen. Si no es así, sigue con el resto del artículo.

Vamos a ver cómo podemos solucionarlo (funcionará en la mayoría de los casos, pero quizá no en el tuyo 🤷🏻‍♂️)...

Por cierto, parece ser que con Firefox da más problemas que con Chromium (Chrome, Edge, Brave, Vivaldi, Opera...). Si usas Firefox y tras hacer lo que se explica más abajo sigue sin funcionar, prueba desde uno de estos navegadores.

Descárgate la versión más reciente del JDK de Java

El JDK (Java Development Kit) es el conjunto de herramientas de la plataforma Java que nos permiten desarrollar para la misma (más info aquí). La aplicación de Autofirma pesa tanto porque incluye el JDK 11 entero en lugar de JRE (el runtime) en una subcarpeta de la carpeta de instalación (más sobre esto luego).

Descárgate la versión más reciente del JDK para tu sistema (la 15 al escribir esto, pero puede que haya otra más reciente cuando leas esto) desde https://jdk.java.net/ (en esta animación yo me bajo la de Windows, pero tú baja la de tu sistema operativo):

La animación muestra cómo bajarse el JDK, algo extremadamente sencillo.

Se trata de la versión Open source del JDK (Open JDK) y es de libre distribución y uso. Ocupa 187 Mb (por eso "pesa" tanto Autofirma: porque lo incluye entero), así que tardará unos minutos porque el servidor no es el más rápido del mundo tampoco.

Arreglar Autofirma en Windows

Nota: Si tienes un Mac, tienes los pasos más adelante en este mismo artículo.

Una vez descargado el JDK, descomprime sus contenidos a una carpeta en cualquier sitio, por ejemplo en la propia carpeta de descargas. Dentro contiene una carpeta llamada jdk-xx.y.z o similar (según la versión exacta, que serían las x, y, z del nombre). Cambia el nombre a la carpeta y llámale exactamente jre (todo así, en minúsculas).

Asegúrate de que Autofirma no está en ejecución.

Ahora abre el explorador de archivos de tu sistema y vete a la carpeta de Autofirma. En Windows está en C:\Program Files\AutoFirma\AutoFirma. Desconozco dónde estará ubicada en macOS o Linux pero intuyo que será fácil averiguarlo, sorry.

Dentro de esta carpeta verás una subcarpeta llamada, lo has adivinado, jre. Cámbiale el nombre a, por ejemplo, jre-11 o incluso elimínala si tu disco anda corto de espacio (aunque yo te recomiendo que la conserves por si las moscas).

Ahora copia ahí tu nueva carpeta jre, creada en el paso anterior, quedando algo como lo que se ve en la animación:

La animacion muestra que ahora tengo dos carpeta: jre y jre-11 (la antigua), y el contenido de la primera

A pesar del nombre que tiene, lo que estás haciendo es sustituir la versión 11 del JDK por la más reciente.

¡Listo!

Ahora, cuando vuelvas a lanzar Autofirma desde el navegador se abrirá la ventana de selección de certificados y mostrará todos los instalados en el sistema y también el certificado digital contenido en tu documento nacional de identidad electrónico (DNIe), permitiéndote firmar sin problemas y acabar el infernal trámite con la Administración:

La figura muestra, ahora sí, la lista de Autofima con un certificado de DNI electrónico visualizado en la lista

 

Arreglar Autofirma en macOS (Mac)

Nota: yo no manejo macOS habitualmente, así que las pistas necesarias para dar con esta solución las han aportado Miguel Ángel y Marina, dos visitantes del blog, en los comentarios. A partir de su aportación he desarrollado la explicación y he hecho las capturas de pantalla, pero la solución ha partido de ellos. Parece que funciona bien. ¡Muchas gracias a los dos! Y gracias a mi amigo XR por prestarme su Macbook para las capturas.

Nota 2: si estás utilizando un Mac con procesadores M1 o posteriores y macOS Monterrey o posterior, y lo que quieres es poder acceder a DNIe, quizá te interese más intentar esto que dice Javier Lobo en su blog. Muchas gracias a Juan Pedro Bernal por llamar mi atención sobre este enlace.

Nota 3: he descubierto un vídeo de MacParaTodos que se centra en solucionar los problemas de Autofirma en macOS y que quizá te pueda resultar útil si no te funciona lo de abajo.

Asegúrate de que Autofirma no está en ejecución. Ahora vete haciendo uno a uno y con cuidado los pasos descritos a continuación:

0.- Antes de nada: verifica que tienes el certificado en el Keychain de macOS

El Keychain de macOS es en donde se almacenan tus claves y certificados digitales. Si lo que quieres es usar el DNI digital no es necesario que hagas esta comprobación, pero si quieres usar certificados digitales de la FNMT, debes tenerlos en el Keychain o no habrá forma de detectarlos. Así que busca Keychain o Acceso a llaveros con Spotlight:

La aplicación Acceso a Llaveros o KeyChain localizada con Spotlight

Abre la aplicación. Asegúrate de que tienes los certificados digitales que necesitas en la categoría de Mis Certificados (en el lateral):

La aplicación Acceso a Llaveros con la sección Mis Certificados abierta

Si no están ahí, quizá es que los has solicitado con Firefox y solo están en el navegador. Si es así, vete al punto anterior sobre Firefox, expórtalos e impórtalos en el Keychain.

1.- Descomprime el JDK de Java

Busca el archivo comprimido cuyo nombre termina en .tar.gz del JDK de Java que te has bajado al principio del artículo, y haz doble clic sobre él para descomprimirlo (en esta captura es la versión 16 del JDK):

El archivo del JDK descomprimiéndose

Lo va a descomprimir en una carpeta llamada igual que el archivo que te descargaste, con un nombre del tipo openjdk-xx.y.z, pero es indiferente el nombre que tenga. En los siguientes pasos vamos a denominar a estar carpeta, para entendernos, "la carpeta del JDK".

2.- Localiza la carpeta de instalación de AutoFirma

Para ello en el Finder de macOS localiza la sección Aplicaciones, pulsa con el botón derecho sobre el icono de AutoFirma y elige la opción Mostrar contenido del paquete:

La figura muestra la operación descrita

Al hacerlo se abrirá el paquete de la aplicación AutoFirma, con todas las carpetas y subcarpetas que contiene.

3.- Renombrar la carpeta Home

Dentro de los contenidos del paquete de Autofirma, vamos a sustituir la subcarpeta Contents/Resources/Home por una nueva para que funcione todo. Pero no queremos borrar la actual por si acaso, así que vamos a renombrarla. Localízala, y con el botón derecho elige la opción de renombrarla:

Menú contextual para renombrar Home

Da igual el nombre que le des. Es sólo para saber que es la antigua, así que llámale, por ejemplo HomeVieja. Lo que prefieras.

4.- Copiar el JDK a AutoFirma

En la carpeta del JDK que hemos descomprimido en un paso anterior, localiza la subcarpeta que se llama Home y que está dentro de Contents, tal y como muestra la siguiente captura:

La carpeta Home dentro del JDK resaltada en rojo

Copia esta carpeta Home dentro de la carpeta Contents/Resources del paquete de AutoFirma del paso anterior (usa Command+C y Command+V o arrástrala de una ventana a otra, lo que prefieras). Ahora deberías tener una carpeta Home (la que acabas de copiar) y una carpeta HomeVieja (la que renombraste antes).

5.- Copiar el ejecutable de Autofirma a la nueva home

Ya falta poco... Ahora vete a la carpeta HomeVieja (o como le hayas llamado) y, dentro de su subcarpeta bin, localiza dos archivos que tienes allí: AutoFirma y ejecutar. Serán los dos primeros. Copialos a la nueva carpeta Home. Son los que se necesitan para poder ejecutar AutoFirma. Así los copias en el nuevo SDK, con el que (con suerte) sí que funcionarán 😊

Deberías tenerlos en Home como muestra esta captura:

Los dos archivos ya copiados a la carpeta Home

6.- Copiar archivo de jli

Solo falta una cosa, ánimo 😉 Se trata de un archivo (en realidad un link simbólico a un archivo) que necesita la aplicación para funcionar y que todavía no tienes (cosas de macOS).

En la carpeta Home/lib de AutoFirma crea una subcarpeta nueva con el nombre jli ("jota" "ele" "i", todo en minúsculas):

La carpeta jli recién creada

Ahora vete a la carpeta donde descomprimiste el JDK, y localiza el archivo libjli.dylib dentro de la subcarpeta Contents/MacOS. Cópialo a la carpeta jli que acabas de crear en AutoFirma (con Command+C, Command+V, recuerda).

¡Listo!🎉

Si ahora ejecutas AutoFirma ya deberías ver que te muestra los certificados de la FNMT y que, si introduces el DNI en tu lector te pide el PIN para utilizarlo.

Si no funciona siempre puedes volver hacia atrás borrando la carpeta Home de AutoFirma y volviendo a renombrar HomeVieja para que se llame de nuevo Home.

Funcione o no, siempre puedes eliminar el archivo .tar.gz del JDK de Java y la carpeta donde lo descomprimiste, pues ya no son necesarios.

Extra: posible error SAF_16

Si una vez hecho todo lo anterior, al utilizar Autofirma se produce un error que dice lo siguiente:

Ha ocurrido un error realizando la operación (SAF_16: Error al recuperar los datos del servidor intermedio)

Eso se debe a que en su servidor utilizan un certificado HTTPS emitido por la FNMT. Y los sistemas operativos no confían por defecto en los certificados de la FNMT, así que lo suyo es que instales los certificados raíz de la FNMT para que el ordenador confíe y pueda conectarse.

Otra opción más rápida (aunque más insegura), que deberás utilizar si no te funciona la instalación de los certificados raíz, es ir al menú de herramientas y desmarcar la opción "Acceptar solo conexiones con sitios seguros (Recomendado)", que por defecto está marcada:

La opción mencionada, dentro de la primera pestaña del menú de herramientas

Esto hará que no importe que tu sistema no confíe en los certificados de la FNMT y te funcionará sin problemas (muchas gracias a Ekaitz Goienola por este apunte, en los comentarios de abajo).

También fíjate en que tu firewall corporativo (si estás en una empresa) no esté bloqueando ciertas peticiones. Tendrás que pedir ayuda a tu departamento de IT si lo anterior no te funciona.

---

Una última advertencia: en el improbable caso que que utilices Autofirma para algo más que cuando te obligan, si ejecutas la aplicación desde el menú de inicio, o sea, no desde el navegador, te aparecerá un mensaje como este:

El mensaje dice que estás usando Java 15 y la app no está pensada para usarlo por lo que podrían producirse errores

Haz caso omiso de él. Te funcionará perfectamente. Y en el improbable caso de que tuvieras algún fallo, siempre puedes renombrar las carpetas jre para cambiar la versión en cualquier momento (cerrando antes Autofirma) para hacer el proceso a la inversa.

También puedes intentar utilizar la firma desde el móvil con las aplicaciones existentes, pero buena suerte con eso 😒

¡Espero que te resulte util!

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA