DNI electrónico en Linux

Configura y utiliza tu DNI electrónico en Linux

Roberto Lodeiro

Debido a la situación actual, el uso del DNIe se ha hecho todavía mas imprescindible que antes, tanto para identificarnos ante organismos oficiales como para firmar documentos.

Si te interesa utilizarlo en Linux, continua leyendo.


1. Evitar que el lector se apague

En Debian, mi lector se apagaba al poco de conectarlo por motivos de ahorro de energía. Si este no es tu caso puedes saltar al segundo punto.

Para evitarlo, tenemos que editar el Grub.

  • Comprobamos el valor actual de usbcore-autosuspend:
$ cat /sys/module/usbcore/parameters/autosuspend

Si como a mi te sale el valor 2, es que tienes autosuspend activado por defecto. Vamos a desactivarlo.

  • Editamos el Grub:
$ sudo nano /etc/default/grub
  • Agregamos usbcore.autosuspend=-1 en la linea que se muestra (quiet ya venia así que lo dejamos):
GRUB_CMDLINE_LINUX_DEFAULT="quiet usbcore.autosuspend=-1"
  • Actualizamos el Grub:
$ sudo update-grub
  • Reiniciamos el equipo, y comprobamos que el valor a quedado correctamente a -1:
$ cat /sys/module/usbcore/parameters/autosuspend

2. Instalación

Como he dicho antes, utilizo Debian, así que estos comando servirán para Debian y derivados.

  • Instalamos los requisitos previos:
$ sudo apt install pcsc-tools pcscd pinentry-gtk2 libccid
  • Comprobamos que nuestro lector es detectado, nos dirá que no detecta ninguna tarjeta:
$ pcsc_scan

Si repetimos el comando anterior con el DNI insertado en el lector, nos dirá que ha sido detectado he incluso que es un DNI español.

Si utilizas como yo Debian 10 Buster, la versión 1.6.6 que indican como compatible no lo es, has de bajarte la versión 1.6.1 en el apartado de versiones anteriores. Si tienes problemas en Ubuntu 20.04.2.0 LTS también puedes probar con esta versión del driver.

  • Instalamos el driver descargado:
$ sudo apt install ./libpkcs11-dnie_1.6.1_amd64.deb

3. Configuración en Firefox

Ahora tenemos que configurar Firefox para que detecte nuestro DNI electrónico.

  • Vamos a Ajustes - Privacidad y en el apartado de seguridad, pinchamos en Dispositivos de seguridad:

  • Pinchamos en Cargar y nos saldrá la ventana para cargar un nuevo controlador de dispositivo:

  • Añadimos los siguientes datos, y pulsamos en aceptar:
Nombre del módulo: DNIe
Nombre del archivo del módulo: /usr/lib/libpkcs11-dnie.so

Marcando el nuevo dispositivo que hemos añadido y pinchando en iniciar sesión, podemos comprobar que nuestro DNI funciona correctamente.

4. Autofirma

Por último, vamos a instalar autofirma, el cual nos permitirá firmar documentos con nuestro DNI electrónico.

4.1 Requisitos

Aunque en la página oficial se indica que es compatible con Java 8 o superior, con Java 11 me ha dado errores y no ha funcionado. Si ya tienes java 8 instalado puedes saltar al siguiente punto.

Recomiendo las builds de Azul Zulu basadas en el OpenJDK. Para instalar zulu8 realizamos lo siguiente:

  • Instalamos las dependencias requeridas:
$ sudo apt-get -q update
$ sudo apt-get -yq install gnupg curl
  • Agregamos la key pública del repositorio:
$ sudo apt-key adv \
--keyserver hkp://keyserver.ubuntu.com:80 \
--recv-keys 0xB1998361219BD9C9
  • Descargamos e instalamos el paquete que agregará el repositorio:
$ curl -O https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-2_all.deb
$ sudo apt-get install ./zulu-repo_1.0.0-2_all.deb
  • Instalamos zulu8:
$ sudo apt update
$ sudo apt install zulu8
  • Comprobamos la versión actual de Java del sistema:
$ java -version

Si teníamos instalada una versión superior de Java y zulu8 no ha quedado como predeterminada, podemos cambiarla con el siguiente comando:

& sudo update-alternatives --config java

Seleccionamos el numero de la versión de Java que queremos que el sistema utilice por defecto, en nuestro caso zulu8.

4.2 Instalación de autofirma

Descargamos la última versión de autofirma desde la página oficial, en nuestro caso la versión para Linux.

  • Instalamos autofirma:
sudo apt install ./AutoFirma_1_6_5.deb

Tenemos que insertar el DNI en el lector antes de abrir autofirma, ya que de lo contrario no mostrará ningún aviso pero no funcionará. Nada mas ejecutarse la aplicación nos pedirá nuestra clave, y ya podremos firmar cualquier documento con nuestro DNI electrónico en Linux.


Espero que sea útil, ¡gracias por leerme!