El configurador de la FNMT en Debian

La FNMT proporciona un programa para configurar el navegador o el sistema o algo (no lo sé porque no he conseguido que funcione) y puedas pedir un certificado digital. Concretamente el paquete dice lo siguiente:

Utilidad FNMT para la solicitud e instalación de certificados desde la página web de FNMT-RCM.

Actualización: sí funciona y podéis saber más en la siguiente entrada.

Renovarlo no si la última vez lo hiciste vía web, porque hay una ley nueva –dicen– que obliga a que cada cinco años tengas presencia física. Supongo que para evitar estafas con personas muertas porque si no no me lo explico.

El caso es que puedes descargarte un paquete Debian para dos arquitecturas (32 y 64 bits) por lo que no hay problema pero en la versión que hay ahora, la 1.0.1.0, el script postinst (el que se encarga de tareas tras la instalación de los archivos) falla porque busca dos directorios de Firefox e intenta copiar en ellos un archivo javascript llamado (configuradorfnmt.js). Si en Debian usas Firefox (en estos momentos) estás empleando la versión ESR (Extended Support Release) casi con seguridad y el problema está en que el nombre del paquete y todas sus carpetas asociadas es firefox-esr y no firefox. Y de ahí el drama.

He estado inspeccionando el paquete y no hay una dependencia sobre el navegador (ni sobre gconf2 que también emplea) por lo que me ha dejado el sistema hecho unos zorros y no he podido desinstalarlo más que a mano. Sí, ha sido divertido pero es lo que tiene que el registro de paquetes esté en plano, que se pueden hacer virguerías con un par de herramientas básicas.

Ahora bien, para instalarlo de forma segura (otra cosa es que luego funcione) se debe hacer lo siguiente:

$ sudo apt install gconf2
$ sudo ln -s /etc/firefox-esr /etc/firefox 
$ sudo ln -s /usr/lib/firefox-esr /usr/lib/firefox
$ sudo install -d -o root -g root /etc/firefox-esr/pref
$ sudo dpkg -i configuradorfnmt_1.0.1-0_amd64.deb
Seleccionando el paquete configuradorfnmt previamente no seleccionado.
(Leyendo la base de datos ... 268656 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar configuradorfnmt_1.0.1-0_amd64.deb ...
Desempaquetando configuradorfnmt (1.0.1-0) ...
Configurando configuradorfnmt (1.0.1-0) ...
oct 13, 2020 4:56:46 PM es.gob.fnmt.cert.certrequest.util.FnmtLogManager install
INFORMACIÓN: La ruta para el fichero de registro ('/root/.fnmt') no existe, se creara
oct 13, 2020 4:56:47 PM es.gob.fnmt.cert.certrequest.CertRequest main
INFORMACIÓN: Modo de depuracion desactivado
oct 13, 2020 4:56:47 PM es.gob.fnmt.cert.certrequest.CertRequest main
INFORMACIÓN: Version actual de la aplicacion: '1'
Procesando disparadores para desktop-file-utils (0.23-4) ...
Procesando disparadores para mime-support (3.62) ...

Y por si alguien tiene alguna duda de lo anterior dejo aquí el script que contiene el paquete:

#!/bin/sh
 FIREFOX_FOLDER=`dpkg -S firefox | grep -m 1 pref$ | cut -d' ' -f2`
# JS_FOLDER="${FIREFOX_FOLDER:-/usr/lib/firefox}"

JS_FOLDER1="/etc/firefox/pref"
JS_FOLDER2="${FIREFOX_FOLDER:-/usr/lib/firefox}"

cd /usr/lib/configuradorfnmt/
cp configuradorfnmt.js $JS_FOLDER1
cp configuradorfnmt.js $JS_FOLDER2
tar xzf jre.tar.gz && rm jre.tar.gz && jre/bin/java -jar configuradorfnmt.jar -install

gconftool-2 -s /desktop/gnome/url-handlers/fnmtcr/command '/bin/configuradorfnmt %s' --type Stri
gconftool-2 -s /desktop/gnome/url-handlers/fnmtcr/enabled --type Boolean true

if [ -e /usr/share/applications/mimeapps.list ]; then
  echo x-scheme-handler/fnmtcr=configuradorfnmt.desktop >> /usr/share/applications/mimeapps.list
else
  cat > /usr/share/applications/mimeapps.list <<EOF
[Default Applications]
x-scheme-handler/fnmtcr=configuradorfnmt.desktop
EOF
fi

Bueno, pues he lanzado el programa y … me he quedado con las ganas. Sospecho que necesitará un tipo de ejecutor Java muy concreto porque tras aparecer la siguiente ventana y aceptar no hace nada más.

Y si lo ejecuto directamente sobre un terminal hay una retahíla de mensajes y lo mismo. Ah, y el código de salida es cero.

victor@falcata:~/Descargas$ configuradorfnmt
oct 13, 2020 5:04:25 PM es.gob.fnmt.cert.certrequest.CertRequest main
INFORMACIÓN: Modo de depuracion desactivado
oct 13, 2020 5:04:25 PM es.gob.fnmt.cert.certrequest.CertRequest main
INFORMACIÓN: Version actual de la aplicacion: '1'
oct 13, 2020 5:04:25 PM es.gob.fnmt.cert.certrequest.CertRequest printSystemInfo
INFORMACIÓN: Aplicacion FNMT de solicitud de certificados version 1.
Sistema operativo: Linux.
Version del sistema operativo: 5.7.0-0.bpo.2-amd64.
Version de Java: 1.8.0_251.
Arquitectura del JRE: 64 bits.
Fabricante de la JVM: Oracle Corporation.
Idioma por defecto: es_ES.
Tamano actual en memoria: 228MB.
Tamano maximo de memoria: 2654MB.
Memoria actualmente libre: 113MB.
oct 13, 2020 5:04:26 PM es.gob.fnmt.cert.certrequest.ProxyUtil setDefaultProxy
INFORMACIÓN: No se usara proxy para las conexiones HTTP
oct 13, 2020 5:04:26 PM es.gob.fnmt.cert.certrequest.ProxyUtil setDefaultProxy
INFORMACIÓN: No se usara proxy para las conexiones HTTPS
oct 13, 2020 5:04:26 PM es.gob.fnmt.cert.certrequest.Updater$1 checkServerTrusted
INFORMACIÓN: Verificado correctamente el certificado SSL: SEDE ELECTRONICA FNMT-RCM
oct 13, 2020 5:04:26 PM es.gob.afirma.core.misc.http.UrlHttpManagerImpl enableSslChecks
INFORMACIÓN: Habilitadas comprobaciones SSL
oct 13, 2020 5:04:26 PM es.gob.fnmt.cert.certrequest.Updater getLatestVersion
GRAVE: No se ha podido obtener la ultima version disponible desde https://www.sede.fnmt.gob.es/documents/10445900/10528994/certrequest.version.linux: es.gob.afirma.core.misc.http.HttpError
oct 13, 2020 5:04:26 PM es.gob.fnmt.cert.certrequest.Updater isNewVersionAvailable
GRAVE: No se puede comprobar si hay versiones nuevas del aplicativo
oct 13, 2020 5:04:26 PM es.gob.fnmt.cert.certrequest.Updater lambda$checkForUpdates$1
INFORMACIÓN: No se ha podido comprobar la disponibilidad de nueva version: java.lang.UnsupportedOperationException: No se puede comprobar si hay versiones nuevas del aplicativo, no hay informacion sobre la ultima version disponible

Curioso lo de la versión Java. Realmente tengo instalado el paquete openjdk-11-jre-headless y lo mismo es eso.

Bien, le he escrito un correo al responsable porque lo he encontrado en el archivo de control del mismo y espero que pueda decirme algo. Si no, probaré con otro Java y terminaré en algún Windows roñoso que encuentre. Lástima, siempre andamos por detrás cuando siguiendo cuatro reglas tenemos los sistemas más ordenados y portables.

17 thoughts on “<span>El configurador de la FNMT en Debian</span>”

  1. Creo que el paquete de Java que necesitas es el openjdk-11-jre, que es el que necesita el Autofirma y otras basuras de la FNMT.

    • Pues tristemente no. :-( Lo tengo y nada, tampoco va.

      Ten en cuenta que ésto es completamente nuevo. No tiene que ver con el autofirma y antiguas basuras. Así que nos esperan días de terror y llanto.

      • Buenos días Sr. Mora.
        ¿Le pidió durante la instalación la contraseña para proteger los certificados? He tenido ese problema y ahora debo volver a empezar todo desde el principio (nuevo certificado, etc…)

        ¿Qué procedimiento realizó para una correcta instalación? Soy nuevo en Linux y voy muy de culo, xq cuanto más busco, más me pierdo.
        Gracias de antemano.

        • Claro que pidió la contraseña. En el recuadro menciona donde se pide la contraseña indica que será la misma que se utilizará para descargar el certificado una vez pasada la fase de acreditación.

          Lo siento si la ha perdido, tendrá que volver a realizar el proceso de solicitud. Yo he tenido que hacerlo ya tres veces por no conseguir una cita para acreditarme por la pandemia. Y no hay problema alguno. Te dan un número nuevo.

          Eso sí, es necesario anotar esa contraseña en papel.

          • Gracias por responder tan pronto.
            Una duda, ¿cómo lo instaló? ¿usó la terminal o un entorno gráfico?
            Yo utilicé la terminal, siguiendo un vídeo que vi de cómo instalar paquetería .deb, y no me salió ninguna ventana para poner contraseña.
            Gracias nuevamente.

          • Si son paquetes como éste empleo la terminal, claro. A nivel gráfico te sugiero que uses el programa gdebi (https://packages.debian.org/buster/gdebi) que aunque es para Gnome funciona bien y resuelve muchos problemas de dependencias.

            Que en el terminal instalando un paquete no te salga ninguna petición de contraseña es raro. ¿ Qué orden empleas ?
            $ sudo dpkg -i paquete.deb

  2. Eso de incrustar un jre completo ‘de tapadillo’ no parece muy ortodoxo.
    Un AppImage hubiera sido lo suyo.

    Al final ¿por qué no funcionaba?

  3. Yo no consigo instalarlo… ni des-instalarlo para empezar de cero.
    Si el JRE esta incluido en el paquete, no entiendo el error, la verdad.
    Me veo instalando una maquina virtua con windows solo para estos tramites….
    ¿Ideas?

    $ sudo apt-get –purge remove configuradorfnmt
    Desinstalando configuradorfnmt (1.0.1-0) …
    /var/lib/dpkg/info/configuradorfnmt.prerm: línea 2: /usr/lib/configuradorfnmt/jre/bin/java: No existe el fichero o el directorio
    dpkg: error al procesar el paquete configuradorfnmt (–remove):
    el subproceso instalado paquete configuradorfnmt script pre-removal devolvió el código de salida de error 127
    cp: no se puede efectuar `stat’ sobre ‘configuradorfnmt.js’: No existe el fichero o el directorio
    cp: no se puede efectuar `stat’ sobre ‘configuradorfnmt.js’: No existe el fichero o el directorio
    tar (child): jre.tar.gz: No se puede efectuar open: No existe el fichero o el directorio
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    Se encontraron errores al procesar:
    configuradorfnmt
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    $ sudo dpkg -i configuradorfnmt_1.0.1-0_amd64.deb
    (Leyendo la base de datos … 222734 ficheros o directorios instalados actualmente.)
    Preparando para desempaquetar configuradorfnmt_1.0.1-0_amd64.deb …
    /var/lib/dpkg/info/configuradorfnmt.prerm: línea 2: /usr/lib/configuradorfnmt/jre/bin/java: No existe el fichero o el directorio
    dpkg: atención: el subproceso antiguo paquete configuradorfnmt script pre-removal devolvió el código de salida de error 127
    dpkg: probando el script del nuevo paquete en su lugar…
    /var/lib/dpkg/tmp.ci/prerm: línea 2: /usr/lib/configuradorfnmt/jre/bin/java: No existe el fichero o el directorio
    dpkg: error al procesar el archivo configuradorfnmt_1.0.1-0_amd64.deb (–install):
    el subproceso nuevo paquete configuradorfnmt script pre-removal devolvió el código de salida de error 127
    cp: no se puede efectuar `stat’ sobre ‘configuradorfnmt.js’: No existe el fichero o el directorio
    cp: no se puede efectuar `stat’ sobre ‘configuradorfnmt.js’: No existe el fichero o el directorio
    tar (child): jre.tar.gz: No se puede efectuar open: No existe el fichero o el directorio
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    Se encontraron errores al procesar:
    configuradorfnmt_1.0.1-0_amd64.deb

    • El script que da el fallo es /var/lib/dpkg/info/configuradorfnmt.prerm. Está mal hecho y no deja borrar el paquete. La solución es borrar previamente el script y luego desinstalar.


      $ sudo rm /var/lib/dpkg/info/configuradorfnmt.prerm
      $ sudo dpkg --purge configuradorfnmt

      Y se empieza de cero a instalarlo. Yo lo he probado en una Debian 10 y funciona.

      • Hecho,
        Gracias, ya esta. Ahora estoy en el mismo paso que tu en el 1º pos. En el 2º indicas que funciona, pero no los pasos exactos que seguiste para solucionar el error.

        $ configuradorfnmt
        nov 10, 2020 3:27:45 PM es.gob.fnmt.cert.certrequest.CertRequest main
        INFORMACIÓN: Modo de depuracion desactivado
        nov 10, 2020 3:27:45 PM es.gob.fnmt.cert.certrequest.CertRequest main
        INFORMACIÓN: Version actual de la aplicacion: ‘1’
        nov 10, 2020 3:27:45 PM es.gob.fnmt.cert.certrequest.CertRequest printSystemInfo
        INFORMACIÓN: Aplicacion FNMT de solicitud de certificados version 1.
        Sistema operativo: Linux.
        Version del sistema operativo: 4.19.0-12-amd64.
        Version de Java: 1.8.0_251.
        Arquitectura del JRE: 64 bits.
        Fabricante de la JVM: Oracle Corporation.
        Idioma por defecto: es_ES.
        Tamano actual en memoria: 178MB.
        Tamano maximo de memoria: 860MB.
        Memoria actualmente libre: 101MB.
        nov 10, 2020 3:27:45 PM es.gob.fnmt.cert.certrequest.ProxyUtil setDefaultProxy
        INFORMACIÓN: No se usara proxy para las conexiones de red
        nov 10, 2020 3:27:46 PM es.gob.fnmt.cert.certrequest.Updater$1 checkServerTrusted
        INFORMACIÓN: Verificado correctamente el certificado SSL: SEDE ELECTRONICA FNMT-RCM
        nov 10, 2020 3:27:46 PM es.gob.afirma.core.misc.http.UrlHttpManagerImpl enableSslChecks
        INFORMACIÓN: Habilitadas comprobaciones SSL
        nov 10, 2020 3:27:46 PM es.gob.fnmt.cert.certrequest.Updater getLatestVersion
        GRAVE: No se ha podido obtener la ultima version disponible desde https://www.sede.fnmt.gob.es/documents/10445900/10528994/certrequest.version.linux: es.gob.afirma.core.misc.http.HttpError
        nov 10, 2020 3:27:46 PM es.gob.fnmt.cert.certrequest.Updater isNewVersionAvailable
        GRAVE: No se puede comprobar si hay versiones nuevas del aplicativo
        nov 10, 2020 3:27:46 PM es.gob.fnmt.cert.certrequest.Updater lambda$checkForUpdates$1
        INFORMACIÓN: No se ha podido comprobar la disponibilidad de nueva version: java.lang.UnsupportedOperationException: No se puede comprobar si hay versiones nuevas del aplicativo, no hay informacion sobre la ultima version disponible

        • Ya está. No hay que hacer nada más hasta que con el navegador solicites un certificado. Entonces el servidor enviará de vuelta un objeto con el tipo MIME x-scheme-handler/fnmtcr y el navegador, tras consultar la base de datos de /usr/share/applications/mimeapps.list, preguntará qué abrir o lo abrirá directamente dependiendo de otros aspectos de la configuración.

          Estos mendrugos tendrían que haber puesto una página de manual (se lo dije) o una ayuda más clara (también se lo dije) pero de momento es lo que hay. Y funcionar, te aseguro que funciona.

          • Hola.
            Veo el codigo en /usr/share/applications/mimeapps.list
            Aunque me extraña mucho que solo este
            x-scheme-handler/fnmtcr=configuradorfnmt.desktop
            Deberia haber muchos mas tipos mime.
            Cuando intento pedir el certificado de la FNMT
            Salta un triste error genérico tanto en chromium como en Firefox
            Se ha producido un error en la aplicación:
            Consulte con el administrador del sistema

Comments are closed.