Hay una versión más reciente de este artículo en "Configurar un lector de DNI electrónico en Firefox con AutoFirma en Ubuntu (Versión 2024)".
Hace poco me he visto en la necesidad de utilizar el DNI electrónico para hacer gestiones por Internet. La verdad es que su configuración no ha sido tan sencilla como debería en Ubuntu 20.04, así que me he decidido a escribir este post para explicarselo a mi yo del futuro (y ya de paso a quien lo necesite).
El lector de tarjetas
Aunque supongo lo aquí escrito funcionará con otros, yo he utilizado el lector de tarjetas 23890 Primo Smart Card Reader de la marca Trust.
Instalación de libpkcs11
Para hacer funcionar el lector de tarjetas en nuestro Ubuntu tenemos que instalar libpkcs11. Esta biblioteca depende de otros paquetes, así que primero los instalamos con el siguiente comando:
sudo apt install pcsc-tools pcscd pinentry-gtk2
Una vez instalados, descargamos de la página oficial de la policía nacional el paquete DEB para nuestra distribución.
Y luego lo instalamos, en nuestro caso con el siguiente comando:
sudo dpkg -i libpkcs11-dnie_1.6.6_amd64.deb
Durante la instalación reiniciará el Firefox y mostrará una página con ayuda de configuración (que explicaremos en los puntos más abajo), y para que la instalación termine tenemos que cerrar Firefox.
Comprobamos el lector de tarjetas
En este punto conectamos el lector de tarjetas a nuestro ordenador y ejecutamos el siguiente comando:
lsusb
Si todo ha ido bien en la consola aparecerá listado el lector de tarjetas, en mi caso:
Alcor Micro Corp. AU9540 Smartcard Reader
Todavía sin meter el DNI en el lector, pero con este conectado a nuestro ordenador, ejecutamos el siguiente comando:
pcsc_scan
Y deberá aparecer en el terminal que no hay tarjeta insertada, en mi caso:
Card state: Card removed
Y cuando introduzcamos el DNI en el lector, ejecutamos de nuevo el comando anterior:
pcsc_scan
Y deberá aparecer en el terminal que hay tarjeta insertada, en mi caso:
Card state: Card inserted
Configurar el dispositivo de seguridad en Firefox
Ahora vamos a Firefox > Preferencias > Privacidad & Seguridad > Dispositivos de seguridad (es un botón que está abajo)
Pulsamos en el botón "Cargar".
Ponemos un nombre al módulo, por ejemplo "DNI Electrónico".
Indicamos la ruta del archivo del módulo: /usr/lib/libpkcs11-dnie.so
Pulsamos en el botón "Aceptar" y aparecerá en los "Dispositivos de seguridad"
Añadir el certificado raíz de la Policía en Firefox
Ahora vamos a Firefox > Preferencias > Privacidad y Seguridad > Ver certificados (es un botón que está abajo)
Vamos a la pestaña "Autoridades" y pulsamos el botón "Importar".
Indicamos la ruta del certificado raíz: /usr/share/libpkcs11-dnie/ac_raiz_dnie.crt
El asistente le pedirá que establezca la confianza para el certificado.
Marque todas las casillas de confianza, y pulse el botón "Aceptar".
En este momento deberá aparecer el certificado raíz de la policía "Ver certificados".
Verificar que funciona el lector de DNI electrónico en Firefox
Ahora nos vamos a:
https://www.sede.fnmt.gob.es/certificados/persona-fisica/verificar-estado/solicitar-verificacion
Si te falla la primera vez, puede que tengas que entrar en una pestaña privada o borrar las cookies para que te funcione de nuevo.
En cualquier caso, si todo va bien, debería pedirte la contraseña del certificado de tu DNI electrónico, que deberían haberte dado en comisaría cuando te lo sacaste.
Una vez introducida la contraseña, en esa página deberías ver tus datos (nombre, apellidos y DNI).
Instalar las dependencias de AutoFirma
La versión 1.6.5 de AutoFirma, aunque arranca con versiones más modernas de Java, hay algunas cosas, como el que firme directamente desde Firefox, que no funcionan si no es con la versión 8 de Java. Para instalar esta dependencia ejecutamos el siguiente comando:
sudo apt install openjdk-8-jre
Si ya tuviéramos instalados una versión más moderna de Java, tendremos que indicar al sistema que queremos usar la 8. Para ello ejecutamos el siguiente comando:
sudo update-alternatives --config java
Nos saldrá algo parecido a esto:
Existen 2 opciones para la alternativa java (que provee /usr/bin/java). Selección Ruta Prioridad Estado ------------------------------------------------------------ * 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 modo automático 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 modo manual 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 modo manua Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección:
En mi caso, yo tendré que pulsar la opción 2 para que la versión por defecto de Java sea la 8. Para verificarlo ejecutamos el siguiente comando:
java -version
Si todo ha ido veremos algo así:
openjdk version "1.8.0_282" OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08) OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
Luego tenemos que instalar la dependencia "libnss3-tools" y para ello ejecutamos el siguiente comando:
sudo apt install libnss3-tools
Instalar AutoFirma
Para instalar AutoFirma nos tenemos que descargar el ZIP de la página de descarga oficial, descomprimirlo en una carpeta, y ejecutar el siguiente comando:
sudo dpkg -i AutoFirma_1_6_5.deb
Con AutoFirma instalado, si tienes un certificado, ya es bastante fácil firmar documentos. El problema es intentar firmar documentos con el DNI electrónico. Para ello hay que hacer ciertas cosas "raras".
Configurar AutoFirma con el DNI electrónico
El primer problema es que la biblioteca JMulticard no funciona correctamente, así que hay que desactivarla desde "Autofirma > Herramientas":
Para que se hagan efectivos los cambios hay que reiniciar. Y lo raro es que ahora, cuando reinicias, si tienes el el lector de tarjetas instalado con el DNI electrónico introducido, te pedirá la contraseña del certificado. Hasta aquí todo normal. Pero luego en la primera pantalla en vez de pulsar sobre el botón "Continuar con DNIe" tienes que pulsar sobre el botón "Usar cualquier certificado".
Sí, no es nada intuitivo, pero como está enchufado un lector de tarjetas salta esta ventana, y como hemos desactivado la biblioteca JMulticard tenemos que pulsar en el botón "Usar cualquier certificado", y a la hora de firmar te mostrará el certificado del DNI electrónico.
Configurar AutoFirma con Firefox
Si hemos llegado hasta aquí sin problemas ya deberíamos poder utilizar el DNI electrónico tanto desde Firefox como desde AutoFirma. El problema llega cuando en un sitio web te piden desde la propia web firmar con AutoFirma.
Como hasta aquí, no es difícil la solución, pero hay que conocerla. AutoFirma no se lleva bien con los perfiles de Firefox, solo debería existir uno.
Si abrimos los perfiles de Firefox desde "about:profiles" vemos que por defecto tenemos 2, "default-release" y "default":
También podemos ver los perfiles arrancando Firefox desde la consola con el comando:
firefox -p
O modificando el fichero:
~/.mozilla/firefox/vim profiles.ini
El caso es que tenemos que eleminar los que no se usan y al final solo tenemos que tener el perfil "default-release".
Pero la cosa no acaba aquí, ahora hay que restaurar la instalación de AutoFirma con Firefox cerrado. Para ello cerramos el Firefox, abrimos AutoFirma, nos vamos a "AutoFirma > Herramientas > Restaurar instalación". Luego pulsamos en el botón "Iniciar restauración". Nos pedirá la contraseña de administrador del sistema. Y debería terminar con algo así:
Probar AutoFirma con Firefox
Y si hemos llegado hasta aquí, sin ningún error, ya solo falta probar que AutoFirma funciona bien desde esta página:
https://valide.redsara.es/valide/firmar/ejecutar.html
probando a firmar un documento con el DNI electrónico con AutoFirma desde el navegador.
Recursos
La información para redactar este post la he sacado de:
- https://vivaelsoftwarelibre.com/lector-de-dni-electronico-en-linux-rapido-y-sencillo-en-firefox/
- https://github.com/ctt-gob-es/clienteafirma/issues/145#issuecomment-747936855
- https://github.com/ctt-gob-es/clienteafirma/issues/172#issuecomment-767120025
- https://github.com/ctt-gob-es/clienteafirma/issues/29#issuecomment-461150075
Genial, me ha servido de mucho. Explicaciones claras y sin rodeos.
ResponderEliminarPor cierto en la version Flatpak de Firefox, no funciona este sistema.
Solo funciona en la versión .deb o ppa de Firefox que trae ubuntu por defecto.
Después de tres días de dar vueltas para instalar el dnie en Ubuntu 20.04, lo he conseguido con las indicaciones de este artículo. Deberían tener un cartelito en las comisarías de policía con la dirección de esta página. Sobre todo, G R A C I A S
ResponderEliminarPerfecto! Muchas Gracias!
ResponderEliminarMe has salvado la vida. He estado mirando en cientos de sitios, y desde ése es desde donde al final he podido firmar documentos con mi Ubuntu. Pero aún no puedo realizar el último paso, el del firmar desde el navegador con autofirma. Ahí mi sistema falla. He iniciado la restauración en Autofirma pero Firefox no me abre la aplicación. NO sé que puede estar fallando.
ResponderEliminarA mi me pasa como a Rdos, todo va bien hasta el ultimo paso. Lo he probado en dos ordenadores distintos y el mismo fallo en la autofirma desde firefox.
ResponderEliminarEn mi caso el problema es diferente. Al verificar el DNIe me pide el PIN, se lo introduzco y me verifica un certificado que tengo instalado en Firefox, no el del DNIe
ResponderEliminarLo he probado con distribuciones tipo debian, tipo redhat, tipo arch y no hay forma de que funcione. Todo el proceso hasta la carga de certificados me funciona, pero al verificar si funciona el DNI en la web de la FNMT me dice que el certificado no es válido.
ResponderEliminarBien explicado. Muchisimas gracias.
ResponderEliminarMuchísimas gracias!!! llevaba días intentandolo en Linux Mint. Funciona a la perfección. GRACIAS.
ResponderEliminarMuchas gracias Adolfo. Me ha sido de gran utilizad. Por si lo quieres actualizar, la página para verificar el DNIe ahora es esta https://www.sede.fnmt.gob.es/certificados/persona-fisica/verificar-estado
ResponderEliminarMuchas gracias Adolfo. Me ha sido de gran utilidad. Por si lo quieres actualizar, la página para verificar el DNIe ahora es esta https://www.sede.fnmt.gob.es/certificados/persona-fisica/verificar-estado
ResponderEliminar