viernes, 24 de septiembre de 2021

Firma en "Gestion táctica" y Autofirma en LliureX

 Las direcciones de CEFIRE necesitan utilizar su firma digital para firmar digitalmente los certificados de participación desde la aplicación "Gestión táctica" ( https://platei.gva.es/gestion_tactica/ ). También hay que firmar documentos con Autofirma. Y parece que ambos procedimientos tienen partes en común, por lo que lo trataremos en conjunto.

Para poder realizar dicha firma hay que preparar el ordenador siguiendo una serie de pasos. En esta entrada voy a indicar los pasos que he dado para conseguirlo, siguiendo la guía que me ha proporcionado mi compañero Ricardo Nutz Ayala del CEFIRE Humanístico y Social.

Algunos de los pasos no estoy seguro que sean necesarios y los voy a indicar con un *. Yo los he dado, porque venían en la lista de pasos de Ricardo, pero puede que sin hacerlos también funcione. Así pues, los pasos serían:

  • Agregar posibilidad de arquitectura de 32bits en sistemas de 64bits (* opcional?)
    # sudo dpkg --add-architecture i386

  • Instalar la aplicación "Autofirma" (disponible en el Zero-Center)

  • Instalar y Editar confianza (marcar todas las casillas) de las Autoridades de la FNMT, DNI y ACCV. Para ello podemos usar el configurador de la FNMT disponible en: (* opcional?)
    https://www.sede.fnmt.gob.es/descargas/descarga-software/instalacion-software-generacion-de-claves

  • Desinstalar el paquete openwebstar si estuviera instalado e instalar icedtea-netx (* opcional?)
    sudo apt purge openwebstart
    # sudo apt install --reinstall icedtea-netx

    Atención:
    En LliureX 21 este paso ha de cambiarse ya que la versión de icedtea-netx que se instala es la de focal y la necesaria es la que venía en Bionic. La solución nos la da el equipo de Lliurex en este post. En este caso hay que desinstalar primero el icedtea-netx:

    # sudo apt remove icedtea-netx

    Y a continuación descargar e instalar estos 2 paquetes en este orden:

    http://lliurex.net/bionic/pool/main/i/icedtea-web/icedtea-netx-common_1.9-lliurex1_all.deb

    http://lliurex.net/bionic/pool/main/i/icedtea-web/icedtea-netx_1.9-lliurex1_amd64.deb

  • Instalar los paquetes libnss3-tools y nss-passwords. El segundo de ellos no está en el repositorio de LliureX, así que habrá que introducir los repositorios de Ubuntu antes de instalar. Para ello podemos usar "Repoman" añadiendo los repositorios de Ubuntu.

    Si queréis hacerlo manualmente, en Lliurex19 (en Lliurex21 los repositorios son otros, ojo) editamos /etc/apt/sources.list con:

    #sudo nano /etc/apt/sources.list

    Y añadimos estas líneas al final, después guardamos:
    #------------------------------------------------------------------------------#
    #                            OFFICIAL UBUNTU REPOS                             #
    #------------------------------------------------------------------------------#
    ###### Ubuntu Main Repos
    deb http://es.archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse
    ###### Ubuntu Update Repos
    deb http://es.archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
    deb http://es.archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb http://es.archive.ubuntu.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb http://es.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
    ###### Ubuntu Security Repos
    deb http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse 

    Actualizamos e instalamos:
    # sudo apt update
    # sudo apt install libnss3-tools nss-passwords

    Una vez instalados volvemos a editar el archivo sources.list y eliminamos los repositorios de Ubuntu añadidos dejando solo los de LliureX.

  • Instalar el paquete adjunto: sai-jnlps-launch.deb

  • Verificar que solo hay un perfil de firefox. Si hay más de uno borrar los no necesarios y dejar solo uno. ¡ESTO ES IMPORTANTE! Con este comando veremos los perfiles existentes
    # firefox --ProfileManager

    En la ventana que sale debe haber un solo perfil. Si hay más, eliminar los no necesarios.



  • Instalar el certificado de firma electrónica en Firefox. En la versión actual de Firefox en el momento de escribir estas líneas se encuentra en:
    Ajustes - Privacidad&Seguridad - Certificados - Ver Certificados

  • Confirmar que tenemos la versión de java OpenJDK11. Para ello usamos este comando:



    Si, como en este ejemplo ja está seleccionada la opción correcta, no hemos de hacer nada. Si, por el contrario, hay otra versión de java, seleccionaremos OpenJDK11 como en el ejemplo. Y si no estuviera instalado lo instalaremos con:
    # apt update
    # apt install openjdk-11-jre

  • Enlazar almacenes de certificados en $HOME/.pki/nssdb a los almacenes de certificados de Firefox donde está instalada la firma electrónica con este comando:
    # MOZ_PROFILE=$(grep Path $HOME/.mozilla/firefox/profiles.ini|cut -d "=" -f2) \
    && if [ ! -d $HOME/.pki/nssdb ]; then mkdir -p $HOME/.pki/nssdb; fi \
    && ln -sf $HOME/.mozilla/firefox/$MOZ_PROFILE/*.db $HOME/.pki/nssdb/

    IMPORTANTE: Antes de realizar este paso es conveniente revisar el contenido del archivo ~/.mozilla/firefox/profiles.ini y asegurarse que solo existe 1 perfil en ese fichero. Si hay más de uno no funcionará.


  • Comprobaremos que al usar Autofirma para firmar un documento, nos ofrece directamente los certificados instalados en el almacén de Firefox. Si no es así, algo falla.

  • Comprobaremos que al utilizar Gestión Táctica nos ofrece ejecutar el programa sai-jnlps , se ejecuta correctamente y nos ofrece los certificados almacenados en el almacén de certificados de Firefox.
    https://platei.gva.es/gestion_tactica/

    He comprobado que el programa falla bastante y en ocasiones da error. Así que hay que intentarlo varias veces seguidas hasta que funciona. 😓

  • Si hemos llegado hasta aquí y ha funcionado, pues perfecto. Sino aquí pongo un par de referencias que me hizo llegar Ricardo y que pueden ayudar:
     https://github.com/ctt-gob-es/clienteafirma/issues/16#issuecomment-371744649
    https://www.librebit.com/autofirma-java-firefox-y-debian-10-en-la-administracion-electronica/

Actualización Diciembre 2022

A partir de cierto momento dejó de funcionar el acceso a Gestión Táctica usando el procedimiento anterior. Ahora ha cambiado y no es válido lo anterior. Ahora hay que usar el javaws 8.333.
Nuevamente, gracias a Ricardo Nutz por su manual, que reproduzco aquí tal cual:

-Instalar java 8u333 64bit (o ultimo) para usar con los ".jnpl"

 Descargar la version Linux x64 de https://www.java.com/en/download/linux_manual.jsp --> jre-8u333-linux-x64.tar.gz Si no está disponible la 8.333 no descargar otra más nueva. Puede descargarse aquí.

  • sudo mkdir -p /opt/java/
  • sudo cp ~/Descargas/jre-8u333-linux-x64.tar.gz /opt/java
  • cd /opt/java
  • sudo chmod 777 /opt/java/jre-8u333-linux-x64.tar.gz
  • sudo tar -xvf jre-8u333-linux-x64.tar.gz
  • sudo update-alternatives --config javaws
  • sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/java/jre1.8.0_333/bin/javaws" 222
  • sudo update-alternatives --set javaws /opt/java/jre1.8.0_333/bin/javaws
  • sudo update-alternatives --config javaws

Ahora vamos a Firefox. A la última versión disponible, no hace falta una específica:
En Firefox -> Ajustes -> Aplicaciones -> archivo JNPL -> Desplegable: Usar otra: /opt/java/jre1.8.0_333/bin/javaws