FirmaLocal
Firmar un PDF

«Error al obtener los alias» de Autofirma: solución

Qué significa «Error al obtener los alias de los certificados» en Autofirma y por qué aparece con Firefox y NSS, con el DNIe o con el Llavero de Mac.

Actualizado el

«Error al obtener los alias de los certificados» es uno de esos mensajes que parecen escritos para que nadie los entienda. Aparece al pulsar «Firmar», a veces acompañado de «Error al cargar el nuevo almacén de claves», y después de él Autofirma no muestra ningún certificado, ni siquiera un selector vacío. No es un código SAF_, así que no está en la tabla de Todos los errores SAF, pero es un pariente cercano de SAF_08 y SAF_19, y las causas se solapan con las de Autofirma no reconoce mi certificado. Esta guía explica qué está intentando hacer Autofirma cuando falla así, y en qué configuraciones falla con más frecuencia.

Qué es un «alias» y qué significa el error

En la terminología de Java, cada certificado guardado en un almacén de claves tiene un alias: un nombre interno con el que el almacén lo identifica. Lo primero que hace Autofirma al abrir un almacén es pedirle la lista de alias; con ella construye el selector de certificados que ves en pantalla. Si esa petición falla, no hay lista, no hay selector y aparece este mensaje.

En el código fuente actual, la operación está en la clase que agrega los almacenes (AggregatedKeyStoreManager): recorre cada almacén configurado y, si uno lanza una excepción al pedirle los alias, registra la advertencia «No se pudieron obtener los alias del almacen …» seguida del error concreto. El texto exacto de la ventana, «Error al obtener los alias de los certificados», procede de versiones anteriores y de algunos componentes que todavía lo muestran; el mensaje del registro es el que más pistas da. Su compañero, «Error al cargar el nuevo almacén de claves.», sí está literalmente en el código: lo muestra el diálogo de selección cuando el almacén que has elegido no se puede abrir.

La diferencia con sus vecinos, en una línea: SAF_08 es que el almacén no se abre; este error es que el almacén se abre pero no se puede recorrer; SAF_19 es que se recorre pero no queda nada válido.

Las cuatro configuraciones donde falla

1. Firefox y el almacén NSS (sobre todo en Linux)

Autofirma lee el almacén de Firefox a través de las bibliotecas NSS del propio Firefox, cargadas desde Java. Es la integración más frágil de toda la aplicación, y en Linux es la única disponible. Tres formas concretas de romperse, todas documentadas en las incidencias del proyecto:

  • Incompatibilidad entre el Java y las bibliotecas NSS. La incidencia #214, con Ubuntu y macOS, muestra en el registro un CertificateException: Signature algorithm mismatch al inicializar el almacén de Firefox: Java no consigue interpretar lo que NSS le devuelve, y la lista de alias queda vacía o falla. Actualizar Java (y Autofirma) es la salida.
  • «Se han pedido alias a un almacén no inicializado». Es el texto de un IllegalStateException que aparece cuando Autofirma pide los alias antes de haber conseguido abrir el almacén, normalmente porque el perfil no se encontró o estaba bloqueado.
  • Dos perfiles de Firefox. La incidencia #86 describe cómo Autofirma carga el segundo perfil aunque estés usando el primero. Con Firefox instalado como snap en Ubuntu, el perfil ni siquiera está donde Autofirma lo busca.

La guía específica de Firefox, con la comprobación de perfiles y la instalación como snap, es Autofirma no funciona en Firefox; la de Linux, Instalar Autofirma en Linux.

2. El DNIe y los controladores de tarjeta

Autofirma no solo lee el almacén que le indicas: intenta también enumerar los certificados de las tarjetas conectadas, mediante su biblioteca JMulticard o los controladores del fabricante. Si hay un lector con una tarjeta que no responde, un controlador desactualizado o un DNIe que la versión instalada no reconoce, la enumeración falla y puede arrastrar la lista completa. La incidencia #216 recoge un «Error intentando recuperar el certificado con el alias ‘CertAutenticacion’» con el DNIe de 2021, exactamente ese mecanismo.

La prueba es sencilla: desconecta el lector y repite. Si el error desaparece, es la tarjeta; y si no usas tarjeta para firmar, desmarca «Habilitar JMulticard para el uso de las tarjetas de la FNMT y DNIe» en Herramientas → Preferencias.

3. El Llavero de Mac

En macOS, Autofirma accede al Llavero con un componente propio. La incidencia #350, con Ventura y Autofirma 1.8.2, muestra un NullPointerException al obtener los alias desde el Llavero: la aplicación encuentra una entrada que no puede interpretar y la enumeración se detiene. El autor de la incidencia encontró una salida que sigue siendo válida: en el selector de certificados, cargar el fichero .p12 directamente en lugar de depender del Llavero. Otras causas en Mac son los certificados marcados a mano como «Confiar siempre» y los llaveros dañados tras actualizar; ambas están en Autofirma no funciona en Mac.

4. El almacén de Windows

Es el caso menos frecuente. Autofirma lee el almacén de Windows mediante la biblioteca sunmscapi.dll del propio Java; si esa biblioteca falta o el antivirus la ha bloqueado, el registro muestra «No se ha podido invocar a sunmscapi.dll para obtener los alias». Reinstalar Autofirma con su Java incluido lo resuelve; el detalle está en Autofirma no funciona en Windows 11.

Cómo resolverlo, en orden

  1. Cambia de almacén en Herramientas → Preferencias (Firefox ↔ sistema) y repite. Es la prueba más rápida para saber cuál falla.
  2. Desconecta lectores y tarjetas que no vayas a usar y desmarca JMulticard si firmas con un certificado en fichero.
  3. Si el almacén es Firefox: comprueba el perfil predeterminado (about:profiles), cierra Firefox del todo y, en Linux, asegúrate de que no está instalado como snap.
  4. En Linux, actualiza Java a una JRE completa y reciente y reinstala el paquete de Autofirma.
  5. En Mac, prueba a cargar el .p12 desde el selector en lugar de usar el Llavero.
  6. Herramientas → Restaurar instalación y, si no basta, reinstalación completa desde el portal oficial.
  7. Si después de todo Autofirma abre el almacén pero tu certificado no aparece, ya no es este error: sigue por Autofirma no reconoce mi certificado o por SAF_19.

Si sigue fallando: firmar sin que nadie tenga que listar nada

Este error nace de la capa que traduce entre Java y el almacén de turno: NSS, JMulticard, el Llavero, sunmscapi.dll. Es una capa que existe solo porque Autofirma necesita encontrar tu certificado dentro del sistema. Si tu certificado es un fichero .p12 o .pfx, esa capa es prescindible.

Cuando lo que tienes que hacer es entregar un PDF firmado, FirmaLocal carga el .p12 directamente en el navegador, lee de él el certificado y la clave privada y calcula la firma PAdES-B-B en tu equipo, sin consultar ningún almacén. No hay alias que enumerar ni almacén que cargar; ni el documento ni el certificado se suben a ningún servidor. Firma tu PDF ahora. Si no tienes el .p12, Exportar certificado FNMT a .p12 explica cómo obtenerlo. Límites, como siempre: no sirve para firmar dentro de la sede, no funciona con DNIe ni tarjetas, una firma por documento y sin sello de tiempo. Si el error te salía precisamente con el DNIe, necesitas que el controlador funcione o un certificado en fichero.

Comprobar que la firma vale

Sube el PDF firmado a VALIDe y confirma que reconoce la firma y el titular del certificado antes de presentarlo.

Fuentes

FirmaLocal genera firmas electrónicas avanzadas basadas en certificado cualificado (PAdES-B-B), la misma clase de firma que produce Autofirma con un certificado software. No sustituye a la firma con DNIe ni a la autenticación dentro de una sede electrónica. FirmaLocal no presta asesoramiento jurídico.