Usa el DNI electrónico con Docker

Si usas Linux y necesitas utilizar el DNI electrónico, seguro que alguna vez has sufrido tratando de hacerlo funcionar. Los drivers, las configuraciones, los certificados… Un auténtico dolor de cabeza. Pero no te preocupes, porque hoy te voy a enseñar una solución mucho más sencilla: usar Docker para hacer funcionar el DNIe en tu sistema sin complicaciones. Para ello me voy a basar en la documentación que nos preparado un gran Linuxero Fidel-Perez. Recuerda seguirle en GitHub si te está pareciendo interesante.

Si estás empezando en el mundillo de Linux y quieres tener más claros los conceptos básicos, te recomiendo mi curso gratuito que puedes encontrar en esta misma página.
Índice de contenidos
¿Qué necesitamos?
Para seguir esta guía, solo necesitas tener instalado Docker en tu distribución de Linux. Si aún no lo tienes, puedes instalarlo siguiendo la documentación oficial de Docker para tu sistema o este enlace. Además, vamos a utilizar un proyecto llamado dnie-docker, que nos facilita enormemente la tarea.
Te recomiendo que nunca te fies de lo que hace un Dockerfile, antes revisa el fichero y comprueba que no ves nada raro como enviar tus datos a China o vender tu alma a Elon Musk.
Instalación y configuración del DNIe y Docker
- Clonar el repositorio Lo primero que tienes que hacer es clonar el repositorio del proyecto en tu equipo. Abre una terminal y ejecuta:
git clone https://github.com/fidel-perez/dnie-docker.git
cd dnie-docker
- Construir la imagen de Docker Ahora toca construir la imagen de Docker que contiene todo lo necesario para usar el DNIe. Ejecuta:
docker build -t dnie-firefox
- Este comando descargará y configurará automáticamente las dependencias dentro del contenedor.
Siguiendo el manual de GitHub
Antes de lanzar la primera ejecución, debes tener instalados unos pocos requisitos previos. No te preocupes que en la documentación te indica que sólo debes ejecutar este comando antes de iniciar la imagen docker:
sudo apt-get install --reinstall pcscd libccid pcsc-tools # Si no en linux se lía con el detector de tarjetas.
xhost +local:docker
Ahora ya podemos pasar a lanzar el comando de docker:
docker run -it --rm \
--env DISPLAY=$DISPLAY \
--volume /tmp/.X11-unix:/tmp/.X11-unix \
--volume /run/pcscd/pcscd.comm:/run/pcscd/pcscd.comm \
--device /dev/bus/usb \
--group-add $(getent group plugdev | cut -d: -f3) \
dnie-firefox
Una vez dentro del contenedor:
- Arranca firefox (comando
firefox
en la terminal, te abrirá una ventana de firefox) - Navega a
OPTIONS -> SECURITY-> DEVICE MANAGER -> Boton "LOAD"
Valor: ‘/usr/lib/libpkcs11-dnie.so’
Solución de problemas con DNI y Docker
- Si tienes problemas para que el lector de tarjetas sea detectado, asegúrate de que el dispositivo está correctamente conectado y visible con:
lsusb
- Recuerda probar con tarjeta DNI con el chip boca arriba, en el caso de mi tarjetero (Marca zoweetec) es asi.
- Para monitorizar si la tarjeta esta activa
pcsc_scan
, pero no deberías necesitarlo. - Para comprobar que el contenedor está corriendo correctamente, usa:
docker ps
- Si necesitas detener el contenedor, simplemente usa:
docker stop dnie
Usa Docker para utilizar el Dni electrónico
Gracias a Docker, configurar y utilizar el DNI electrónico en Linux es mucho más fácil y sin dolores de cabeza. Olvídate de instalar paquetes incompatibles o pelear con configuraciones difíciles. Ahora, con unos pocos comandos, puedes tener tu DNIe listo para usar en cualquier distribución de Linux.
¡Espero que esta guía te haya sido útil! Si tienes dudas o problemas, puedes dejar un comentario o revisar la documentación oficial del proyecto en GitHub. Este artículo ha sido creado con el Visto Bueno del autor del proyecto, y por todo trabajo debe darse crédito al mismo.