Recientemente ha aparecido el proyecto OpenDNIe para poder usar el DNI electrónico con herramientas libres y mejorar la lamentable situación de los drivers oficiales. Yo he usado esta versión para varios trámites y no he tenido ningún problema, os cuento como instalarlo en Fedora 15 x86_64:
Descargo los paquetes fuente para RedHat en la página de descarga y compruebo la suma md5.
$ md5sum -c opensc-opendnie-0.12.2-1.fc14.src.rpm.md5 < opensc-opendnie-0.12.2-1.fc14.src.rpm
-: La suma coincide
Instalo las dependencias:
# yum groupinstall "Development tools"
# yum install rpmdevtools pcsc-lite pcsc-lite-devel pcsc-lite-ccid pcsc-tools readline readline-devel openssl openssl-devel libtool libtool-ltdl-devel docbook-style-xsl
Con mi lector de tarjetas he tenido que desinstalar las librerías OpenCT para que lo reconzca correctamente:
# yum remove openct
Compilo el paquete
$ rpmbuild --rebuild opensc-opendnie-0.12.2-1.fc14.src.rpm
Si todo va bien, nos encontraremos el paquete en ~/rpmbuild/RPMS/<arch>/
Por lo que procedemos a instalarlo como root
# yum localinstall ~/rpmbuild/RPMS/x86_64/opensc-0.12.2-1.fc15.x86_64.rpm
Hay que tener en cuenta que incluye todo el paquete opensc con las librerías OpenDNIe integradas, por lo que sustituye al opensc que viene con la distribución. Para que una actualización no nos machaque nuestro paquete, podemos añadir en /etc/yum.conf
la siguiente línea en el apartado [main]
exclude=opensc
Habilitamos el servicio de smart cards, en Fedora 16 es un servicio de systemd:
# systemctl enable pcscd.service
# systemctl start pcscd.service
Podemos comprobar si nos reconoce el lector con el comando pcsc_scan. En caso de que nos diga “Waiting for the first reader…”, entonces no nos ha reconocido el lector.
# pcsc_scan
PC/SC device scanner
V 1.4.17 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.7.4
Scanning present readers...
0: MSI StarReader SMART [Smart Card Reader Interface] (20070818000000000) 00 00
Tue Jun 5 16:06:02 2012
Reader 0: MSI StarReader SMART [Smart Card Reader Interface] (20070818000000000) 00 00
Card state: Card removed,
En Firefox, hay que añadir la autoridad certificadora de la FNMT y la autoridad de validación del DNIe, una vez descargados los certificados, vamos a Preferencias, Avanzado, Cifrado, Ver certificados, Autoridades, Importar y marcamos las 3 casillas para que confíe en estas CA.
Por último añadimos la librería que hemos compilado para poder hacer uso del DNIe en las páginas web. En Preferencias, Avanzado, Cifrado, Dispositivos de seguridad, añadimos la siguiente entrada:
OpenDNIe PKCS#11
/usr/lib64/opensc-pkcs11.so
Tenéis más información sobre la configuración en Linux en la wiki de Cenatic.
Hola, me ha funcionado todo exxepto lo último, cuando intento registrarlo en Firefox y al cargar al módulo me dice que no es posible cargarlo.
La diferencia es que tengo fedora 16 y el mídulo se ha creado en /usr/lib/opensc-pkcs11.so aunque tengo 64bit.
¿Cual puede ser el problema?
Gracias.
LikeLike
Que raro, yo acabo de repetir todo el proceso con Fedora 16 y me ha funcionado bien. Al compilar el RPM, ¿te lo ha generado con la arquitectura correcta x86_64? Puedes comprobar si es una librería de 64 bits con:
$ file /usr/lib64/opensc-pkcs11.so
/usr/lib64/opensc-pkcs11.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
Supongo que no habrás tocado nada de las macros de RPM, mira el valor de las macros _lib y _libdir con el comando:
$ rpm –showrc | grep _lib
Puedes mirar también el contenido del RPM generado con el comando:
$ rpmls ~/rpmbuild/RPMS/x86_64/opensc-0.12.2-1.fc16.x86_64.rpm
Otra cosa que se me ocurre es lanzar Firefox desde línea de comandos para ver si muestra algún error cuando intentas cargar el módulo.
Ya me dirás que tal.
Un saludo.
LikeLike
Hola, gracias por contestar tan rápido.
Te pego el contenido de lo que me sale del RPM generado:
-rw-r–r– /etc/opensc.conf
-rwxr-xr-x /usr/bin/cardos-tool
-rwxr-xr-x /usr/bin/cryptoflex-tool
-rwxr-xr-x /usr/bin/dnie-tool
-rwxr-xr-x /usr/bin/eidenv
-rwxr-xr-x /usr/bin/netkey-tool
-rwxr-xr-x /usr/bin/opensc-explorer
-rwxr-xr-x /usr/bin/opensc-tool
-rwxr-xr-x /usr/bin/piv-tool
-rwxr-xr-x /usr/bin/pkcs11-tool
-rwxr-xr-x /usr/bin/pkcs15-crypt
-rwxr-xr-x /usr/bin/pkcs15-init
-rwxr-xr-x /usr/bin/pkcs15-tool
-rwxr-xr-x /usr/bin/westcos-tool
lrwxrwxrwx /usr/lib64/libopensc.so.3
-rwxr-xr-x /usr/lib64/libopensc.so.3.0.0
-rwxr-xr-x /usr/lib64/onepin-opensc-pkcs11.so
-rwxr-xr-x /usr/lib64/opensc-pkcs11.so
drwxr-xr-x /usr/lib64/pkcs11
-rwxr-xr-x /usr/lib64/pkcs11-spy.so
lrwxrwxrwx /usr/lib64/pkcs11/onepin-opensc-pkcs11.so
lrwxrwxrwx /usr/lib64/pkcs11/opensc-pkcs11.so
lrwxrwxrwx /usr/lib64/pkcs11/pkcs11-spy.so
drwxr-xr-x /usr/share/doc/opensc-0.12.2
-rw-r–r– /usr/share/doc/opensc-0.12.2/COPYING
-rw-r–r– /usr/share/doc/opensc-0.12.2/NEWS
-rw-r–r– /usr/share/doc/opensc-0.12.2/README
-rw-r–r– /usr/share/doc/opensc-0.12.2/README.pkcs15init
-rw-r–r– /usr/share/doc/opensc-0.12.2/README.scconf
-rw-r–r– /usr/share/man/man1/cardos-tool.1.gz
-rw-r–r– /usr/share/man/man1/cryptoflex-tool.1.gz
-rw-r–r– /usr/share/man/man1/dnie-tool.1.gz
-rw-r–r– /usr/share/man/man1/eidenv.1.gz
-rw-r–r– /usr/share/man/man1/netkey-tool.1.gz
-rw-r–r– /usr/share/man/man1/opensc-explorer.1.gz
-rw-r–r– /usr/share/man/man1/opensc-tool.1.gz
-rw-r–r– /usr/share/man/man1/piv-tool.1.gz
-rw-r–r– /usr/share/man/man1/pkcs11-tool.1.gz
-rw-r–r– /usr/share/man/man1/pkcs15-crypt.1.gz
-rw-r–r– /usr/share/man/man1/pkcs15-init.1.gz
-rw-r–r– /usr/share/man/man1/pkcs15-tool.1.gz
-rw-r–r– /usr/share/man/man1/westcos-tool.1.gz
-rw-r–r– /usr/share/man/man5/pkcs15-profile.5.gz
drwxr-xr-x /usr/share/opensc
-rw-r–r– /usr/share/opensc/asepcos.profile
-rw-r–r– /usr/share/opensc/authentic.profile
-rw-r–r– /usr/share/opensc/cardos.profile
-rw-r–r– /usr/share/opensc/cyberflex.profile
-rw-r–r– /usr/share/opensc/entersafe.profile
-rw-r–r– /usr/share/opensc/flex.profile
-rw-r–r– /usr/share/opensc/gpk.profile
-rw-r–r– /usr/share/opensc/ias_adele_admin1.profile
-rw-r–r– /usr/share/opensc/ias_adele_admin2.profile
-rw-r–r– /usr/share/opensc/ias_adele_common.profile
-rw-r–r– /usr/share/opensc/iasecc.profile
-rw-r–r– /usr/share/opensc/iasecc_admin_eid.profile
-rw-r–r– /usr/share/opensc/iasecc_generic_oberthur.profile
-rw-r–r– /usr/share/opensc/iasecc_generic_pki.profile
-rw-r–r– /usr/share/opensc/incrypto34.profile
-rw-r–r– /usr/share/opensc/jcop.profile
-rw-r–r– /usr/share/opensc/miocos.profile
-rw-r–r– /usr/share/opensc/muscle.profile
-rw-r–r– /usr/share/opensc/myeid.profile
-rw-r–r– /usr/share/opensc/oberthur.profile
-rw-r–r– /usr/share/opensc/pkcs15.profile
-rw-r–r– /usr/share/opensc/rutoken.profile
-rw-r–r– /usr/share/opensc/rutoken_ecp.profile
-rw-r–r– /usr/share/opensc/setcos.profile
-rw-r–r– /usr/share/opensc/starcos.profile
-rw-r–r– /usr/share/opensc/westcos.profile
Soy nuevo en linux y no entiendo mucho, pero aparentemente, lo veo bien. Lo que pasa es que los paquetes de /usr/lib64 los ha generado en /usr/lib y además he comprobado como me has dicho la compilación del RPM y efectivamente NO ES DE 64 bit:
$ file /usr/lib64/opensc-pkcs11.so
/usr/lib/opensc-pkcs11.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
¿Por qué ha hecho esto? ¿Cómo lo desinstalo?
LikeLike
SOLUCIONADO…………..aunque no sé cómo
He desinstalado el opensc:
$ sudo yum erase opensc-pkcs11.so
y luego he repetido la instalación:
$ sudo yum localinstall ~/rpmbuild/RPMS/x86_64/opensc-0.12.2-1.fc16.x86_64.rpm
y ahora me ha funcionado!!!!
Gracias por todo crack!!
P.D. Ahora tengo que renovar el certificado porque me pone que está cadudado!!!
LikeLike
Hola, yo tengo Fedora 16 de 32 bits. Podríais indicarme en que debo variar el procedimiento de instalación descrito por vosotros para 64 bits?
Gracias por adelantado!!
LikeLike
Lo único que cambiaría sería que tras la compilación del RPM, lo encontrarás en el directorio de tu arquitectura en ~/rpmbuild/RPMS
Además la librería que tienes que añadir a Firefox estará en la ruta /usr/lib/opensc-pkcs11.so
Por todo lo demás, idéntico.
LikeLike
Juan. ante todo muchas gracias por tu rapidísima respuesta! He seguido todos los pasos de la instalación y no obtuve error alguno, salvo cuando intento habilitar y comenzar el servicio “pcscd”. Al hacer: #systemctl enable pcscd.service
me contesta con: “Failed to issue method call: No such file or directory”
LikeLike
Parece que no encuentra el archivo /lib/systemd/system/pcscd.service. Asegúrate que tienes instalado el paquete pcsc-lite y que corres el comando como root. Con eso debería bastar.
LikeLike
Ah, he observado que en Fedora 16 no tengo instalado los siguientes paquetes: openct, pcsc-lite-openct, pcsc-lite, pcsc-lite-ccid, pcsc-tools, coolkey
Inicialmente, antes de proceder a la instalación tal y como tu describes aquí, los tenía instalados de una instalación fallida de hacía unos días atrás, partiendo ya de paquetes para fedora13. Supongo que deberé instalarlos, o al menos alguno de ellos, no?
LikeLike
He instalado el pcsc-lite (y el pcsc-lite-ccid) y ya he podido habilitar y lanzar el servicio pcsc. He añadido a Firefox la librería /usr/lib/opensc-pkcs11.so. Ahora en el administrador de dispositivos de firefox ya me aparece el nuevo módulo (DNI electrónico PIN1), pero cuando pulso “Iniciar sesión” me dice: “Por favor, identifíquese con el token. El método de identificación dpende del tipo de su token. Token: DNi electrónico (PIN1)”. Y luego me da el error: “Falló el inicio de sesión”. Previamente, claro tengo insertado el DNI en mi lector del teclado. Y es que no me da la oportunidad de introducir el PIN, que es lo que debí pedirme, no?
Tendré que instalar alguno de los otros paquetes que comenté arriba??
LikeLike
La verdad es que nunca le he dado al botón que dices de iniciar sesión, simplemente voy a alguna página que requiere el certificado y en el momento que lo necesita te pregunta el PIN.
Puedes probar en esta página a ver si te funciona: http://www.dnielectronico.es/como_utilizar_el_dnie/verificar.html en la parte de abajo tienes el enlace prueba.
LikeLike
Sí, ya he probado en la página que dices pero ocurre lo mismo: primero me sale un mensaje con lo de: “Por favor, identifíquese con el token. El método de identificación dpende del tipo de su token. Token: DNi electrónico (PIN1)” y luego como no tengo forma de meter el PIN me da error de autenticación.
Ahora no estoy en el equipo con Fedora con el que estoy probando lo del dnie pero me pregunto sino hará falta el paquete “pinentry-gtk” o algo que me permita abrir el dialogo para introducir el pin de mi dnie? Tu lo tienes instalado?
LikeLike
El diálogo que pide la contraseña me parece que es de Firefox, no del programa pinentry. Estoy revisando los paquetes que me dices y solo tengo instalados estos:
pinentry
pinentry-gtk
pcsc-lite
pcsc-lite-ccid
pcsc-lite-devel
pcsc-lite-libs
Estoy aprovechando para actualizar la entrada con alguna cosilla que se me había olvidado, como la importación de las entidades certificadoras, aunque no creo que sea tu problema. Ya me contarás si descubres el problema.
Un saludo.
LikeLike
Gracias por todo! Ciao!
LikeLike
Hola de nuevo! Ya he descubierto el problema!! Estaba todo bien, tan sólo había que editar el “/etc/opensc.conf” y descomentar un par de líneas tal y como se indica en la forja del Cenatic del proyecto OpenDNIe (http://opendnie.cenatic.es/wiki/index.php/6._Instrucciones_de_instalaci%C3%B3n_de_OpenDNIe). Y es que cuando todo falla hay que leer el manual!!!
Gracias de nuevo, ciao!!
LikeLike
Gracias!!! Me ha sido de mucha ayuda.
LikeLike
Estupendo ahora ya me funciona perfectamente con fedora 16 x64
LikeLike
Receta válida para Fedora 12 también, incluso en arquitectura PowerPC. Qué ganas tenía de que rulara esto y olvidarme de la VM con Windows…
LikeLike
Hola!
He instalado perfectamente el dni-e en Fedora 16.
Solo hay una cosa que no funciona. En lugar de aparecerme la pantalla para ingresar el pass del dni-e me aparece una pantalla que me dice… “por favor identifiquese con el token, el método de identificación depende del token del dni,…” pero en ningún lugar puedo ingresar al susodicho pin.
Como se puede agreglar esto.
Gracias.
LikeLike
El DNIe tiene dos claves, la de autenticación y la de firma, suele preguntar cual elegir y a continuación hay que meter la clave. No tengo muy claro qué es lo que dices. ¿Puedes mandar una captura de pantalla?
LikeLike
Hola.
He seguido tus pasos para instalarlo en Fedora 17 64 bits y obtengo este fallo:
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_get_dnie_driver’
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_pkcs15emu_dnie_init_ex’
collect2: error: ld returned 1 exit status
make[3]: *** [opensc-tool] Error 1
make[3]: *** Waiting for unfinished jobs….
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_get_dnie_driver’
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_pkcs15emu_dnie_init_ex’
collect2: error: ld returned 1 exit status
make[3]: *** [opensc-explorer] Error 1
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_get_dnie_driver’
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_pkcs15emu_dnie_init_ex’
collect2: error: ld returned 1 exit status
make[3]: *** [pkcs15-tool] Error 1
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_get_dnie_driver’
../../src/libopensc/.libs/libopensc.so: undefined reference to `sc_pkcs15emu_dnie_init_ex’
collect2: error: ld returned 1 exit status
make[3]: *** [pkcs15-crypt] Error 1
make[3]: Leaving directory `/home/angel/rpmbuild/BUILD/opensc-0.12.2/src/tools’
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/angel/rpmbuild/BUILD/opensc-0.12.2/src’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/angel/rpmbuild/BUILD/opensc-0.12.2′
make: *** [all] Error 2
error: Estado de salida erróneo de /var/tmp/rpm-tmp.tGnpBB (%build)
Errores de construcción RPM:
usuario jantonio no existe – utilizando root
grupo jantonio no existe – utilizando root
Estado de salida erróneo de /var/tmp/rpm-tmp.tGnpBB (%build)
Te estaría muy agradecido si me echaras una mano.
Muchas gracias y un saludo.
LikeLike
Se me olvidó decir que el fallo se produce al intentar compilar el paquete.
LikeLike