Estos días me estoy pegando con el DNIe, el DNI electrónico, para instalarlo de forma desatendida. La documentación oficial, según mi opinión, es bastante mejorable y, sobre todo, está pensada para instalar el módulos y el certificado para un único usuario. Pero, ¿qué pasa cuando tienes que habilitar el DNIe en, digamos, mil ordenadores basados en Debian GNU/Linux?
El lector de tarjetas
Lo primero es instalar los paquetes necesarios para leer información del lector:
diego@malum:~$ sudo aptitude install pcscd pcsc-tools
Después, toca crear el fichero /etc/reader.conf.d/dnie con estas líneas:
# lector dnie
FRIENDLYNAME DNIe
DEVICENAME /dev/ttyS0
LIBPATH /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
y reiniciar el servicio:
diego@malum:~$ sudo /etc/init.d/pcscd restart
y probar que lee correctamente el DNIe:
$ pcsc_scan
PC/SC device scanner
V 1.4.16 (c) 2001-2009, Ludovic Rousseau <ludovic [email protected]>
Compiled with PC/SC lite version: 1.5.5
Scanning present readers...
0: SCM SCR 3310 [CCID Interface] 00 00
(...)
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 7F 38 00 00 00 6A 44 4E 49 65 10 02 4C 34 01 13 03 90 00
3B 7F 38 00 00 00 6A 44 4E 49 65 [1,2]0 02 4C 34 01 13 03 90 00
DNI electronico (Spanish electronic ID card)
Los paquetes del DNIe
A continuación y para gestionar todo lo relativo al DNIe, hay que descargar el fichero opensc-dnie
, desde la web oficial del DNI electrónico. Se descomprime el fichero, del que sólo usaremos el fichero opensc-dnie
. Pero antes hay que cumplir con las dependencias del fichero:
sudo aptitude install pinentry-gtk2 pinentry-gtk
Y, a continuación, instalamos el paquete:
sudo dpkg -i opensc-dnie_1.4.6-2_i386.deb
Accediendo desde consola
También hará falta tener instalado el programa modutil
(no confundir con modutils), que viene en el paquete libnss3-tools
y que nos permitirá gestionar módulos de seguridad y certificados del navegador.
diego@malum:~$ sudo aptitude install libnss3-tools
Comprobamos si ya está instalado el módulo del DNIe en el navegador. En caso de que sea así y tratemos de instalarlo de nuevo, fallará.
diego@malum:~$ sudo modutil -list -dbdir ~/.mozilla/firefox/semilla.default/
Listing of PKCS #11 Modules
-----------------------------------------------------------
1. NSS Internal PKCS #11 Module
slots: 2 slots attached
status: loaded
slot: NSS Internal Cryptographic Services
token: NSS Generic Crypto Services
slot: NSS User Private Key and Certificate Services
token: NSS Certificate DB
-----------------------------------------------------------
Se instala mediante el comando modutil
y pasándole como argumento la librería opensc-pkcs11
y el directorio de firefox del usuario.
diego@malum:~$ sudo modutil -add DNIe -force
-libfile /usr/lib/opensc/opensc-pkcs11.so
-dbdir ~/.mozilla/firefox/semilla.default
Module "DNIe" added to database.
Si comprobamos, de nuevo, los módulos listados ya aparece el DNIe.
$ sudo modutil -list -dbdir ~/.mozilla/firefox/semilla.default/
Listing of PKCS #11 Modules
-----------------------------------------------------------
1. NSS Internal PKCS #11 Module
slots: 2 slots attached
status: loaded
slot: NSS Internal Cryptographic Services
token: NSS Generic Crypto Services
slot: NSS User Private Key and Certificate Services
token: NSS Certificate DB
2. DNIe
library name: /usr/lib/opensc/opensc-pkcs11.so
slots: 16 slots attached
status: loaded
slot: Virtual slot
token:
(...)
slot: Virtual slot
token:
-----------------------------------------------------------
Ya sólo queda instalar el certificado de la Fábrica Nacional de Moneda y Timbre (FNMT). Si se ha ejecutado el script que viene con el paquete opensc-dnie
, dicho certificado ya está instalado pero, al contrario que con el módulo, el certificado se puede instalar varias veces sin problema. Esta vez el comando es certutil
:
$ certutil -A -n "Certificado FNMT" -t "C,C,C" -d ~/.mozilla/firefox/semilla.default/ -i /usr/share/opensc-dnie/ac_raiz_dnie.crt
Al reiniciar el navegador debería aparecer en el apartado de Certificados y, una vez hecho todo esto, ya se podría utilizar para, por ejemplo, solicitar la vida laboral. ¡Ah! Para llevarlo al resto de ordenadores, bastan dos o tres bucles for
y un buen find
.
3 ideas sobre “instalando el dnie en iceweasel… desde consola”
Qué bueno Diego ! me vendrá cojonudamente -;)
Coño, qué pedazo de entrada!! El trabajo me ha tenido offline más tiempo del que me gustaría y seguramente siga sin conectarme regularmente hasta Septiembre, pero la verdad es que es un placer volver por aquí y ver que seguís al pie del cañón, a pesar del periodo estival y manteniendo la calidad de vuestros contenidos.
Saludos desde mi estancia provisional en el sur de la península!
dabo, si sólo lo vas a poner en un equipo, es más sencillo seguir las instrucciones del paquete :D. Esta receta es para más de cien ordenadores.
debish, bienvenido de nuevo. Nos pillaremos vacaciones a finales de agosto y, hasta entonces, seguimos dando guerra. Me alegra que te guste la entrada. Y, si estás por el sur como dices, un consejo: ¡huye! El calor está intratable estos días. 😀
saludos