Firmas digitales con autofirma/@firma/clienteafirma en openSUSE

This post explains how to install the Spanish government official tool to generate digital signatures and the web applet used in the Spanish government web sites to sign documents that the user needs to upload. If enough people request it, I’ll write also an English version, but for now, as it’s mainly useful for Spanish openSUSE/SUSE users, I’ll write the rest of the post in Spanish.

En este post voy a explicar cómo instalar AutoFirma (también llamada @firma o clienteafirma en distintas versiones) en openSUSE Leap (15 y 42.3), openSUSE Tumbleweed y SUSE Linux Enterprise.

El método fácil y rápido

Para instalar AutoFirma en openSUSE, basta usar la instalación en 1 click, pulsando en el siguiente botón:

El método alternativo

Si se prefiere usar la línea de comandos, se puede añadir mi repositorio de paquetes estables que todavía no están en la distribución e instalar el paquete autofirma desde ahí. En este repositorio intento mantener versiones estables de paquetes que creo que pueden ser interesantes o que personalmente me resultan interesantes así que debería ser seguro añadirlo a los repositorios del sistema. Además, si en algún momento arreglo algún problema o actualizo la versión empaquetada a una más reciente, se obtendrán las mejoras automaticamente al actualizar el sistema. El repositorio es home:alarrosa:packages y para añadirlo hay que usar:

En openSUSE Tumbleweed:

sudo zypper ar -f https://download.opensuse.org/repositories/home:/alarrosa:/packages/openSUSE_Tumbleweed/home:alarrosa:packages.repo

En openSUSE Leap 15:

sudo zypper ar -f https://download.opensuse.org/repositories/home:/alarrosa:/packages/openSUSE_Leap_15.0/home:alarrosa:packages.repo

En SLE 15:

sudo zypper ar -f https://download.opensuse.org/repositories/home:/alarrosa:/packages/SLE_15/home:alarrosa:packages.repo

Y para instalar el paquete:

sudo zypper in autofirma

Cómo usar autofirma

La forma más fácil es añadir el certificado que se haya descargado de la página de la FNMT al almacén de certificados de Firefox (en Preferencias / Privacidad y Seguridad / Certificados). La mayoría de las acciones también permiten usar ficheros PKCS #12 (.p12) directamente.

Las aplicaciones AutoFirma y Cliente @firma aparecerán en el apartado de Oficina del menú de aplicaciones.

AutoFirma

AutoFirma permite firmar documentos muy facilmente.

Diálogo para seleccionar el rectángulo donde se generará una firma visual.

No hace falta modificar las opciones por defecto.


Mensaje de documento correctamente firmado.

Cliente @firma


Cliente @firma da más opciones de firma.

Selección del certificado con el que firmar.

Con cliente @firma se puede validar si una firma es correcta.

Mensaje de firma validada correctamente.

Sobre el paquete autofirma

La última versión oficial distribuida (en el momento en que escribo estas lineas, es la 1.6.3 para Windows y la 1.6.2 para Linux) no permite leer correctamente el almacén de certificados de Firefox, razón por la cual decidí empaquetar la versión en desarrollo de github. Además, hice algunos cambios para que encuentre las librerías del sistema y de Firefox correctamente en openSUSE. También he añadido ficheros .desktop para integrar mejor clienteafirma/autofirma en el escritorio.

Para finalizar, sólo comentar que me llevé una grata sorpresa al ver que el código fuente de autofirma estaba disponible en github con una licencia libre (GPL 2.0 y EUPL 1.1). Desde aquí me gustaría agradecer a los desarrolladores de autofirma por su compromiso con el software libre. En las próximas semanas intentaré enviarles los cambios que he realizado para que los introduzcan en las versiones oficiales por si le son útiles a otras distribuciones.

Actualización: Añadidas instrucciones para SLE 15

16 thoughts on “Firmas digitales con autofirma/@firma/clienteafirma en openSUSE

    1. La había probado en una página de una universidad y el applet funcionaba pero después actualicé el código a una versión más moderna y lo mismo eso ha roto el applet. No conocía la página para testear autofirma que se enlaza en ese foro. Intentaré echarle un rato la semana que viene a ver por qué falla ahí. Gracias por el aviso!

    1. Gracias por los enlaces! Me han venido genial para probar la actualización de los paquetes a la versión 1.6.5git~20190712T105655~83af9cea3 y comprobar que funcionan las firmas CAdES y XAdES.

  1. Gracias por el aporte.

    Yo instale Autofirma y no me funcionaba desde los navegadores. Abrí la aplicacion “Autofirma” lanzandola desde el menu de aplicaciones de linux, restauré la instalación desde “Herramientas -> Restaurar instalación”. A partir de ese momento me funciono en Chromium y Firerox.

    Espero que os sirva.
    Saludos
    Edu

    1. Muchas gracias.
      Después de intentarlo de mil maneras en mi openSUSE, ésto me ha funcionado. Necesito autofirma. Para mí, es motivo suficiente para elegir distro: en el trabajo utilizo Debian. Ahora, autofirma es un motivo como otro cualquiera.

    2. Hola, muchas gracias para empezar. Lo he instalado en openSUSE 15.1 y va bien, pero algo no ha quedado del todo ok en el almacen de certificados de firefox. Cuando trato de aplicar la solucion de “restaurar instalacion”, el log es este:
      INFO: Directorio de aplicación: /usr/share/java
      INFO: El certificado para la configuración del canal seguro ya se encuentra generado.
      INFO: Instalando el certificado en el almacén del sistema…
      INFO: Instalando el certificado en el almacén de Mozilla Firefox…
      INFO: Restaurando la configuración del protocolo afirma… (Puede que se le soliciten permisos de administrador)
      ERROR: No se ha podido restaurar la configuración del protocolo afirma.
      INFO: Restaurando la confianza en el protocolo “afirma” en Chrome…
      INFO: Fin de la configuración

      osea, me pide contraseña de su para ejecutar /usr/bin/mv pero da error.
      Autofirma encuentra los certificados que tengo instalados de la fnmt, pero el cliente @firma no accede al almacen de certificados de firefox y no puedo seleccionar ninguno de los que estan instalados de la fnmt.
      Si le doy a buscar y cargo directamente el .pfx de la fnmt, va bien, me pide la contraseña y firma.

      Te he añadido tu repositorio para leap 15.0 . para seguir actualizando según lo vayas implementando.
      No lo tengo al 100% pero muchas gracias porque menos es nada.
      Lo de la administracion electrónica es un kaos, cada uno va a lo suyo.

      Saludos

      1. Hola,

        Casi la misma situación. Restauro la configuración, me pide acceso de su a mv, da el error de instalación, pero cuando pruebo en la página de test sí identifica el almacén y muestra el certificado, da OK para firma CADES y falla con XADES. Opensuse LEAP 15.1

      2. Gracias por el comentario. He actualizado el paquete a la versión 1.6.5git~20190712T105655~83af9cea3 añadiendo algunos arreglos. Creo que deberían solucionar tu problema, así que si puedes, pruébalo a ver si te funciona (actualmente el paquete se está compilando, imagino que se publicará en unos minutos).

        Por cierto, una vez instalada la actualización no olvides importar el fichero /usr/share/java/autofirma/AutoFirma_ROOT.cert en la configuración de certificados de Firefox.

  2. Hola, ha sido muy interesante. Gracias a esta página he podido instalar AutoFirma en mi OpenSuse.
    Muchísimas gracias por tu labor

  3. Opensuse Leap 15 y última versión de Autofirma:

    a) Instalar mozilla-nss-tools desde los repositorios de OpenSUSE
    b) Instalar autofirma-1.6.5-1.noarch.rpm, que viene en el paquete de instalación de firmadigital.gob.es
    -> rpm -Uvh –nodeps
    ya que este rpm exige nss-tools, y no reconoce como tal a mozilla-nss-tools.
    c)Hay que editar /usr/lib/autofirma y reemplazar la primera línea:
    -> donde pone /usr/bin/bash debe poner /bin/bash
    Con eso funciona a la primera.

    1. Los paquetes oficiales tienen algunos problemas. A mí personalmente no me funciona la firma XADES con ellos. Además, hacen algo bastante feo, que es añadir una autoridad certificadora a todos los usuarios del sistema sin preguntar y sin avisar. Personalmente, prefiero no recomendar su uso por eso.

      Aparte de eso, he preparado una nueva actualización de los paquetes en mi repositorio (a los que he añadido repositorios para Leap 15.1 y SLE-15-SP1 y SLE-12-SP4) con la versión 1.6.5 de autofirma corregida para que funcionen las firmas XADES. Lo único que hay que tener en cuenta una vez instalada la actualización es importar la autoridad certificadora de /usr/share/java/autofirma/AutoFirma_ROOT.cert en Firefox en las cuentas que vayan a hacer uso de autofirma (esto es algo que pienso arreglar en una actualización del paquete para que sea más automático, pero sin llegar a cambiar la configuración del usuario sin avisar, que algunas personas pueden considerar peligroso).

  4. Hola Antonio y resto de compañeros, lo primero muchas gracias por tu trabajo.Te sigo hace tiempo pero tengo errores al usar el almacen de certificados tanto de firefox como de chrome, que al final he solucionado con lo siguiente.
    openSUSE 15.3 y tu compilacion instalada, tambien he probado con la de la pagina oficial con mismo resultado
    1.- Importar certificados personales a los navegadores
    2.- MUY IMPORTANTE: editar el fichero /home/usuario/.mozilla/firefox/profiles.ini y poner EL PRIMERO de la lista que sale, el perfil predeterminado tuyo que estés usando,,,tiene que estar el primero, no vale solo conque sea el predeterminado, sino no funcionará, si solo hay un perfil dejar como esta.
    3.- Descargar e instalar desde oracle la ultima version de java en rpm(openSUSE) jre-8u291-linux-x64.rpm e instalar el paquete
    4.- desde consola, configurar que la version que se va a usar de java es la 1.8. Con version superior de java no funciona con certificados del almacen, solo con DNIe y similares tarjetas criptograficas
    sudo update-alternatives –config java
    y seleccionar en manual la opcion de java8 introduciendo el numero de la posicion que ocupa en pantalla
    comprobar:
    java -version

    5.- Como bien dice Antonio, verificar en firefox certificado importado Autofirma_ROOT.cer en autoridades, que esta en /usr/share/java/autofirma (pack alarrosa) ó /usr/lib64/autofirma (pagina oficial ) y lo mismo en chrome

    probar test autofirma en la web de autofirma
    https://www.sededgsfp.gob.es/es/Paginas/TestAutofirma.aspx

    seguir los pasos que van saliendo y entonces ya si, cargara el almacén de certificados por ejemplo el que tengas de la FNMT y podrás usarlo para autenticarte y sobre todo , firmar

    Gracias Antonio, como no funcionaba y he hecho tantas pruebas he terminado dejando instalado el rpm que ofrecen en la pagina oficial pero estaría encantado de volver a instalar el tuyo cuando puedas echarle un vistazo y ponerlo al dia con garantias. A ver si puede ser que funcione en openSUSE 15.3 con jvm/jre-11-openjdk

    No creo que se me pasa nada sino ya sabeis,,,

    Muchas gracias por compartir

    Saludos

    1. Ya sabía yo que algo iba a poner mal,,,,jeje , el comando correcto tiene dos guiones antes de config, no uno como he puesto en el post anterior, disculpad

      sudo update-alternatives – -config java

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.