La Agencia Tributaria y Debian: una mierda (y soluciones)

Cualquiera persona que utiliza la distribución de Linux Debian (yo utilizo Debian Sid) y tiene que enviar datos de forma electrónica a la Agencia Tributaria va a encontrar problemas en un momento: "Error al inicializar el almacen NSS unificado de Mozilla Firefox. Error Message: No se han podido inicializar ningun almacen, interno o externo, de Firefox". El problema es simplemente que los applets de Java de la Agencia Tributaria buscan ciertos liberias solamente en lugares determinados - y no donde se encuentran en una instalación de Debian.

Por fin - y después de varias búsquedas en el internet - he logrado transmitir mi modelo 349 de forma electrónica. Como?

Estoy utilizando openjdk-8, aunque la Agencia Tributaria recomienda Oracle Java. No obstante, por la actitud de Oracle tengo mis reservaciones del uso de su edición de Java, y además no existe un paquete en los repositorios de Debian. Pero el uso de openjdk-8 no es la causa de las problemas.

Todo es relacionado con la instalación de Iceweasel (la versión de Firefox de Debian) en Debian, que la Agencia Tributaria no toma en cuenta. Supongo que ya has instalado todos los certificados necesarios - tu certificado personal y el certificado raíz de la agencia de certificación (yo tengo lo de la FNMT). Este no es suficiente.

La solución al final he encontrado en este post en la lista de usuarios de Debian: https://lists.debian.org/debian-user-spanish/2014/06/msg00577.html.

1. Dirección de Iceweasel

Realmente no se si este realmente es necesario. Pero según el post, los applets de Java buscan la instalación de Firefox (y no de Iceweasel) en /usr/firefox. Entonces - como root - hay que crear un enlace simbólico (symlink): ln -s /usr/lib/iceweasel /usr/firefox.

2. Dirección del almacén NSS

Este es lo mas importante. Los applets Java de la Agencia Tributaria no pueden encontrar las librerías necesarias para el almacén NSS.

Según el post:


El problema parece que se encuentra en:

package es.mityc.javasign.pkstore.mozilla;
private static String getSystemNSSLibDirUnix()

Este método busca las rutas de las bibliotecas libsoftokn3.so y libnspr4.so
en varios directorios.

Pero obviamente no en los directorios en donde se encuentran en Debian.

La recomendación es buscar donde se encuentran las librerías, utilizando una de estas maneras:


# locate libsoftokn3.so libnspr4.so
# dlocate libsoftokn3.so libnspr4.so
# find /usr/lib -name libsoftokn3.so -o -name libnspr4.so

En mi caso la respuesta fue:

/home/andreas/Private/.mozilla/firefox/w7j8kjen.default/extensions/r2d2b2g@mozilla.org/resources/r2d2b2g/data/linux/b2g/libnspr4.so
/home/andreas/Private/.mozilla/firefox/w7j8kjen.default/extensions/r2d2b2g@mozilla.org/resources/r2d2b2g/data/linux/b2g/libsoftokn3.so
/home/andreas/Private/.mozilla/firefox/w7j8kjen.default/extensions/r2d2b2g@mozilla.org/resources/r2d2b2g/data/linux64/b2g/libnspr4.so
/home/andreas/Private/.mozilla/firefox/w7j8kjen.default/extensions/r2d2b2g@mozilla.org/resources/r2d2b2g/data/linux64/b2g/libsoftokn3.so
/usr/lib/i386-linux-gnu/libnspr4.so
/usr/lib/i386-linux-gnu/libnspr4.so.0d
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so

No se si el applet Java de la Agencia Tributaria busca en una carpeta y sus subcarpetas (/usr/lib/i386-linux-gnu + /usr/lib/i386-linux-gnu/nss), y por eso he utilizado la dirección /home/andreas/Private/.mozilla/firefox/w7j8kjen.default/extensions/r2d2b2g@mozilla.org/resources/r2d2b2g/data/linux/b2g/.

Como root, al primero tenemos que crear una carpeta /opt. Dentro de /opt, creamos un enlace simbólico a esta dirección:

root@andreas-eeebox:/opt# ln -s /home/andreas/Private/.mozilla/firefox/w7j8kjen.default/extensions/r2d2b2g\@mozilla.org/resources/r2d2b2g/data/linux/b2g firefox
root@andreas-eeebox:/opt# chmod 777 firefox

Con esto, finalmente la firma electrónica funciona! Mierda de la Agencia Tributaria.

Etiqueta(s):