Open 2opremio opened 4 years ago
Muchas gracias. ¿Tiene un DNIe emitido con la nueva CA y le está dando errores? ¿podría por favor ejecutar la prueba unitaria "testDnieSign()" y copiar el error? (necesitará poner su PIN en el código y comentar el Ignore de JUnit).
¡Gracias de nuevo!
No he compilado máster. Estoy usando 1.6.5 .
El error que da es que no puede verificar los certificados. Luego lo pego.
Aquí están los logs:
$ /Applications/AutoFirma.app/Contents/Resources/Home/bin/AutoFirma -Xms1024M -Xmx2048M -Dcom.apple.macos.useScreenMenuBar=true -Xdock:name=AutoFirma -Xdock:icon=/Applications/AutoFirma.app/Contents/Resources/JAR/afirma.icns -Djava.library.path=/Applications/AutoFirma.app/Contents/Resources/JAR -jar /Applications/AutoFirma.app/Contents/Resources/JAR/Autofirma.jar
Sep 15, 2020 3:06:48 PM es.gob.afirma.standalone.ProxyUtil clearJavaProxy
INFO: No se usara Proxy para las conexiones de red
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by es.gob.afirma.standalone.SimpleAfirma (file:/Applications/AutoFirma.app/Contents/Resources/JAR/AutoFirma.jar) to method com.apple.eawt.Application.getApplication()
WARNING: Please consider reporting this to the maintainers of es.gob.afirma.standalone.SimpleAfirma
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Sep 15, 2020 3:06:48 PM es.gob.afirma.standalone.SimpleAfirma main
INFO: No se buscaran nuevas versiones de la aplicacion
Sep 15, 2020 3:06:48 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: AutoFirma 1.6.5
Resolucion DPI de pantalla: 0
Sistema operativo: Mac OS X
Version del SO: 10.15.6
Version de Java: 11.0.2
Arquitectura del JRE: 64
Java Vendor: Oracle Corporation
Localizacion por defecto: en_ES
Tamano actual en memoria: 1024MB
Tamano maximo de memoria: 2048MB
Memoria actualmente libre: 976MB
Sep 15, 2020 3:06:48 PM es.gob.afirma.standalone.SimpleAfirma main
INFO: Apertura como herramienta de escritorio
Sep 15, 2020 3:06:48 PM es.gob.afirma.standalone.SimpleAfirma main
INFO: Cargando plugins
Sep 15, 2020 3:06:48 PM es.gob.afirma.standalone.SimpleAfirma main
INFO: Iniciando entorno grafico
Sep 15, 2020 3:06:53 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFO: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
Sep 15, 2020 3:06:53 PM es.gob.afirma.keystores.AOKeyStoreManagerHelperFullJava init
INFO: Cargando KeyStore 100% Java para DNIe y tarjetas FNMT-TIF
Sep 15, 2020 3:06:53 PM es.gob.jmulticard.card.dnie.DnieFactory getDnie
INFO: Detectado DNIe 3.0
Sep 15, 2020 3:06:53 PM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete
WARNING: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Parametro(s) incorrecto(s) P1-P2 (6B00). APDU de origen: 00-B0-06-82-EE
Sep 15, 2020 3:06:54 PM es.gob.afirma.keystores.AOKeyStoreManager getCertificate
SEVERE: Error intentando recuperar el certificado con el alias 'CertAutenticacion', se devolvera null: java.security.ProviderException: es.gob.jmulticard.card.CryptoCardException: Error en el establecimiento del canal seguro de PIN: es.gob.jmulticard.apdu.connection.ApduConnectionException: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80
Sep 15, 2020 3:06:54 PM es.gob.afirma.standalone.SimpleKeyStoreManager getKeyStore
SEVERE: No se ha podido inicializar el controlador 100% Java del DNIe: java.lang.NullPointerException
Gracias. La opción de usar el emisor del certificado de CA intermedia para el ICC, tal y como propone openSC no me gusta, deberíamos ser capaces de detectar directamente estos DNIe con nuevas jerarquías por el ATR, pero como el CNP no ha publicado esta información probablemente vayamos por el mismo camino...
Vaya, asumía que estabais en contacto directo con la DGP.
Por cierto, tened en cuenta que, según entiendo, todos los DNIs nuevos usan este nuevo CA intermedio, así que supongo que esto debería tener prioridad alta.
En mi caso soy un particular que mantiene el proyecto JMultiCard (https://github.com/ctt-gob-es/jmulticard), y este es un error de este proyecto, y no tanto de AutoFirma. No tengo ninguna relación contractual con ningún gobierno para estos proyectos.
Desde el proyecto del Cliente @firma vamos a intentar ponernos en contacto con Policía, a ver si nos pueden proporcionar información oficial.
Muchas gracias por el aviso.
Buena suerte. OpenSC y sus usuarios tienen suerte de que @rickyepoderi esté al pie del cañón haciendo ingeniería inversa.
Es un poco vergonzoso que la DGP no haga públicos los CA intermedios de componentes y más sorprendente aún que el equipo de Firma no esté al tanto del cambio (siendo, según entiendo, el cliente de firma oficial para plataformas no-Windows).
@2opremio Acabo de implementar la corrección (en JMultiCard, https://github.com/ctt-gob-es/jmulticard) y todo parece funcionar OK ¿Tú tienes DNIe con serie posterior a BMP100001 para probar?
Sí, si que la tengo. Si me dices una manera sencilla de probarlo en macOS (por ejemplo me pasas un build, no tengo toolchain de Java instalado), lo pruebo y te digo.
Hola,
Me he encontrado con este mismo problema, y para probar, he descargado las versiones actuales (master) de "clienteafirma" y de "jmulticard", que incluye los cambios realizados tanto por @clawgrip como por @Gamuci en relación a los nuevos DNIe, según he podido ver en los commit. Después de compilar ambos proyectos (mvn install, etc), he podido lanzar AutoFirma.jar. Dispongo de varios DNIe con series distintas y estos son los resultados:
El DNIe con serie posterior a BMP100001 ahora sí es reconocido (aparecen los certificados autenticación/firma para escoger) y después se solicita la clave. Antes no aparecía, el programa indicaba que no era posible utilizar el DNIe introducido sin más.
Al introducir la clave e intentar firmar un documento, por ejemplo con CadES, se produce el siguiente error:
es.gob.afirma.standalone.ui.SignPanelSignTask doSignature SEVERE: Error durante el proceso de firma: es.gob.afirma.core.AOException: Error generando la firma CAdES: es.gob.afirma.core.AOException: Error durante el proceso de firma PKCS#1: java.security.SignatureException: es.gob.jmulticard.card.dnie.DnieCardException: Error durante la operacion de firma con respuesta: Condiciones de seguridad no satisfechas (6982)
El error anterior ahora se da también con DNIes anteriores a la serie BMP100001 (con los cuales la firma sí funciona cuando se usa la versión oficial de Autoafirma, en el mismo ordenador y con el mismo lector, etc)
¿Hay alguien que haya podido firmar con un DNI > BMP100001? Y si es así, ¿me podría indicar cómo ha generado los programas, y si es necesario algo más?
Mis pruebas han sido hechas en Linux - Ubuntu 20.04. Si es necesario puedo aportar más información sobre el uso del programa.
Gracias!
Decir que en Windows, curiosamente con la última versión oficial (v1.6.5) de 2019, la firma sí funciona, con un DNI con serie posterior a BMP100001.
Buenas, Tenía el mismo problema con la 1.6.5 en OS X, y compilando desde los repositorios master en su estado a día de hoy, la firma electrónica parece funcionar, aunque con algunos warnings:
INFO: Detectado DNIe 3.0
Dec 02, 2020 8:51:16 AM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete
WARNING: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
Dec 02, 2020 8:51:16 AM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete
WARNING: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
Dec 02, 2020 8:51:16 AM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete
WARNING: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
Dec 02, 2020 8:51:16 AM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFO: El certificado de huella '4D956D9C26ABC0940B0F35607E5C9A9FFD39B3E8' se tomara unicamente del almacen preferente
Dec 02, 2020 8:51:16 AM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFO: El certificado de huella '80CBD46FD9EE68656F5CC2F15ABCC1DC866E8C17' se tomara unicamente del almacen preferente
Dec 02, 2020 8:51:16 AM es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager
INFO: Establecido KeyStoreManager: Gestor de almacenes de claves DNIe y tarjetas FNMT-TIF con nombre DNIe y tarjetas FNMT-TIF
Dec 02, 2020 8:51:22 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Instalamos el proveedor de firma XML de Apache
Dec 02, 2020 8:51:22 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Se usara el proveedor 'ApacheXMLDSig': org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI
[Fatal Error] :1:1: Content is not allowed in prolog.
Dec 02, 2020 8:51:22 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Instalamos el proveedor de firma XML de Apache
Dec 02, 2020 8:51:22 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Se usara el proveedor 'ApacheXMLDSig': org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI
Dec 02, 2020 8:51:22 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Instalamos el proveedor de firma XML de Apache
Dec 02, 2020 8:51:22 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Se usara el proveedor 'ApacheXMLDSig': org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI
Dec 02, 2020 8:51:29 AM es.gob.jmulticard.jse.provider.DnieKeyStoreImpl engineGetCertificateChain
WARNING: No se ha podido cargar el certificado de la CA raiz: java.security.cert.CertificateException: Missing input stream
Dec 02, 2020 8:51:29 AM es.gob.jmulticard.jse.provider.DnieKeyStoreImpl engineGetCertificateChain
WARNING: No se ha podido cargar el certificado de la CA raiz: java.security.cert.CertificateException: Missing input stream
Dec 02, 2020 8:51:29 AM es.gob.jmulticard.jse.provider.DnieKeyStoreImpl engineGetCertificateChain
WARNING: No se ha podido cargar el certificado de la CA raiz: java.security.cert.CertificateException: Missing input stream
Dec 02, 2020 8:51:29 AM es.gob.jmulticard.jse.provider.DnieKeyStoreImpl engineGetCertificateChain
WARNING: No se ha podido cargar el certificado de la CA raiz: java.security.cert.CertificateException: Missing input stream
Dec 02, 2020 8:51:32 AM es.gob.jmulticard.jse.provider.DnieKeyStoreImpl engineGetEntry
WARNING: Se ha proporcionado un ProtectionParameter de tipo no soportado, se ignorara: NULO
Dec 02, 2020 8:51:32 AM es.gob.jmulticard.jse.provider.DnieKeyStoreImpl engineGetCertificateChain
WARNING: No se ha podido cargar el certificado de la CA raiz: java.security.cert.CertificateException: Missing input stream
Dec 02, 2020 8:51:32 AM es.gob.jmulticard.card.dnie.Dnie3 openSecureChannelIfNotAlreadyOpened
INFO: Canal seguro de PIN para DNIe establecido
Dec 02, 2020 8:51:38 AM es.gob.jmulticard.ui.passwordcallback.gui.DnieCacheCallbackHandler handle
INFO: Guardamos en cache la contrasena de la tarjeta
Dec 02, 2020 8:51:39 AM es.gob.jmulticard.card.dnie.Dnie3 openSecureChannelIfNotAlreadyOpened
INFO: Canal seguro de Usuario para DNIe establecido
[Fatal Error] :1:1: Invalid byte 1 of 1-byte UTF-8 sequence.
Dec 02, 2020 8:51:42 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Instalamos el proveedor de firma XML de Apache
Dec 02, 2020 8:51:42 AM es.gob.afirma.signers.xml.Utils installXmlDSigProvider
INFO: Se usara el proveedor 'ApacheXMLDSig': org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI
Dec 02, 2020 8:51:42 AM es.gob.afirma.core.misc.MimeHelper <init>
WARNING: No se pudo detectar el formato de los datos
Dec 02, 2020 8:51:42 AM es.gob.afirma.core.misc.MimeHelper <init>
WARNING: No se pudo detectar el formato de los datos
Ahora mi problema sería cómo generar el instalador .pkg para OS X, ya que solo veo la manera de generar los .jar - pero no el instalador completo.
Hola:
AutoFirma ya integra una versión de JMulticard compatible con los DNIe que se están expidiendo a día de hoy. Este cambio estará disponible en AutoFirma 1.7.
Como alternativa para le funcionamiento de AutoFirma 1.6.5, se puden instalar los últimos drivers del DNIe y desactivar en el panel de preferencias la opción de utilizar JMultiCard. Al desactivarla, la aplicación pasará a utilizar los drivers instalados en el equipo. @czapir, seguramente sea esto por lo que te esté funcionando.
@flozano, el instalador macOS de AutoFirma se genera con la aplicación Packages. Puedes encontrar el proyecto con los ficheros para generarlo en este directorio de GitHub. También hay un manual con la explicación de como actualizar el proyecto para generar el instalador. Puedes descargar la JRE de OpenJDK que quieras usar de alguna de las webs que la ofrecen ya compilada, como AdoptOpenJDK.
@gamuci, y si queremos la versión de Linux, tenemos que esperar a que salga 1.7? Porque yo no sé como desactivar JMultiCard en Linux. Alguna idea?
@Gamuci, y si queremos la versión de Linux, tenemos que esperar a que salga 1.7? Porque yo no sé como desactivar JMultiCard en Linux. Alguna idea?
Es una opción en Herramientas>Preferencias pero a mí no me funcionó.
@eboukamza Estamos hablando del aplicativo AutoFirma en GNU/Linux? Yo no veo ninguna opción de menu en esta aplicación.
@eboukamza Estamos hablando del aplicativo AutoFirma en GNU/Linux? Yo no veo ninguna opción de menu en esta aplicación.
También tienes el atajo Control + P
El control+P funcionó
@lepalom, ¿qué distribución de Linux usas? Miraré por qué no se muestra la barra de menús.
Vale, después de desactivar aquella opción tampoco funcionó:
SEVERE: Error intentando recuperar el certificado con el alias 'CertAutenticacion', se devolvera null: java.security.ProviderException: es.gob.jmulticard.card.CryptoCardException: Error en el establecimiento del canal seguro de PIN: es.gob.jmulticard.apdu.connection.ApduConnectionException: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal:
@Gamuci Utilizo Debian Buster amd64.
@Gamuci y entorno Kde (Plasma) no Mate o Gnome
He conseguido firmar con el combo de desactivar el JMulticard y la opción firefox -P para borrar el segundo perfil en firefox que tenía.
@lepalom me seguía apareciendo ese error pero después me dejó firmar
@eboukamza yo solo tengo un perfil.
Si intento firmar, me da un error, vuelvo a leer la tarjeta, me encuentra el certificado y me dice:
SEVERE: Error durante el proceso de firma: es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:206) at es.gob.afirma.standalone.ui.SignPanelSignTask.doSignature(SignPanelSignTask.java:232) at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:99) at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:60) at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:81) at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:194) ... 9 more Caused by: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1284) at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1354) at java.base/java.security.Signature.initSign(Signature.java:636) at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:78) ... 10 more
@eboukamza yo solo tengo un perfil.
Si intento firmar, me da un error, vuelvo a leer la tarjeta, me encuentra el certificado y me dice:
SEVERE: Error durante el proceso de firma: es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:206) at es.gob.afirma.standalone.ui.SignPanelSignTask.doSignature(SignPanelSignTask.java:232) at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:99) at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:60) at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:81) at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:194) ... 9 more Caused by: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1284) at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1354) at java.base/java.security.Signature.initSign(Signature.java:636) at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:78) ... 10 more
puede ser un problema con tu DNIe? clave introducida tres veces mal o falta de certificados?
@eboukamza
puede ser un problema con tu DNIe? clave introducida tres veces mal o falta de certificados?
No lo sé. Yo lo utilizo para hacer trámites administrativos, como entrar en el Ayuntamiento o Salud y funciona. Estoy esperando con candeletas 1.7 para ver que.
@eboukamza He probado tu solución temporal y no me funciona. Windows 7 64Bits Autofirma 1.6.5 DNI 14.1.0 DNI BNExxxxxx He desactivado la opción de JMuticard Simplemente con este DNI al arrancar autofirma y pulsar "Continuar con DNIe"
Pero me da un error "No ha sido posible inicializar su DNIe; Se continua con el almacén por defecto del sistema" En el log .afirma\AUTOFIRMA.afirma.log.xml
Error intentando recuperar el certificado con el alias 'CertAutenticacion', se devolvera null: java.security.ProviderException: es.gob.jmulticard.card.CryptoCardException: Error en el establecimiento del canal seguro de PIN: es.gob.jmulticard.apdu.connection.ApduConnectionException: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80:
Gracias, @junajosepablos, tu explicación me ha recordado que no expliqué algo importante.
Cuando aparece la pantalla de inicio de AutoFirma y se nos permite elegir entre las opciones "Continuar con DNIe" y "Usar cualquier certificado", debemos seleccionar "Usar cualquier certificado".
La opción "Continuar con DNIe" hace que AutoFirma cargue la biblioteca JMulticard para cargar únicamente los certificados del DNIe. Sin embargo, es el uso de JMulticard lo que justamente queremos evitar.
La opción "Usar cualquier certificado" hace que AutoFirma cargue el almacén de certificados del sistema, lo que incluye los certificados de las tarjetas inteligentes que tengamos disponibles. En este caso, los certificados del DNIe se cargarán mediante JMulticard, si tenemos activada la opción de usarlo, o mediante el driver de Policía, si se desactivó el uso de JMulticard como habíamos comentado.
En el caso de la invocación de AutoFirma desde el navegador no ocurre este problema, ya que en ningún caso se carga sólo JMulticard. Siembre se accede al almacén del navegador y se utiliza JMulticard sólo si está habilitado su uso en el panel de preferencias.
Genial @Gamuci , pero sigue fallando en GNU/Linux. Si que consigo seguir con los pasos y leer la tarjeta, seleccionar el certificado SIG, pero, cuando intento firmar da este error:
DISABLED due to legacy de des. 18, 2020 9:22:46 A. M. es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init INFO: El almacen externo 'DNIe PKCS#11' ha podido inicializarse, se anadiran sus entradas y se detiene la carga del resto de almacenes de des. 18, 2020 9:22:49 A. M. es.gob.afirma.signers.cades.CAdESUtils generateSignerInfo INFO: Se ha seleccionado la generacion de CAdES para inclusion en PAdES de des. 18, 2020 9:22:49 A. M. es.gob.afirma.standalone.ui.SignPanelSignTask doSignature SEVERE: Error durante el proceso de firma: es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:206) at es.gob.afirma.standalone.ui.SignPanelSignTask.doSignature(SignPanelSignTask.java:232) at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:99) at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:60) at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:81) at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:194) ... 9 more Caused by: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1284) at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1354) at java.base/java.security.Signature.initSign(Signature.java:636) at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:78) ... 10 more
Gracias @Gamuci. Ahora con estas instrucciones puedo firmar documentación con el DNI. Pero a la hora de firmar desde Firefox 69.0esr da un error de contraseña el DNI BNExxxxxx. pero uno anterior BAMxxxxxx si funciona. El error me da al solicitar un certificado de persona fisica en www.cert.fnmt.es Y no, no es por que pongas mal la contraseña, antes de iniciar la firma en Opciones > Seguridad > Dispositivos de seguridad> DNI PKCS#11 he iniciado session correctamente.
gracias al enlace de @2opremio. He conseguido Firmar con el DNI BNExxxxxx. Usando Ubuntu + FireFirma + opensc-pkcs11-dnie + Autofirma 1.6.5
Edito con como lo solucioné y dejo debajo lo que me pasaba por si a alguien le sirve para algo: Desactivando el JMulticard seguía sin funcionarme, pero al borrar el 2º perfil que tenía en Firefox (/usr/bin/firefox -p), como dice @eboukamza, me ha empezado a funcionar, tanto desde la aplicación como desde Firefox. Gracias!
Hola
He caído aquí después de mucho buscar solución a mi problema y creo que este es exactamente el problema que tengo, pero no acabo de conseguir hacer el truco que comentáis para conseguir firmar.
Tengo un DNIe BMRxxxxxx. Con Ubuntu y el módulo libpkcs11-dnie en Firefox puedo acceder sin problema a los certificados y loguearme en las páginas que piden el certificado, pero no consigo firmar con autofirma ni desde Firefox ni desde la propia aplicación AutoFirma.
Usando autofirma desde Firefox me dice que no se encuentra certificado y deja esto en el fichero de log:
`
Hola!
Soy un simple usuario que intenta usar las herramientas que el estado nos obliga a usar (por falta de una mejor descripción de la situación).
Y me encuentro que las herramientas no funcionan como sería de esperar. Para usar AutoFirma con el DNIe en linux (yo uso Fedora) al parecer es necesario regresar a la versión 8 de Java (vamos por la 15). Aún regresando a la versión 8, hay que dar no sé qué orden (está documentado por aquí en el GitHub) para conseguir que el applet funcione en Firefox, y además se tiene que eliminar uno de los perfiles de Firefox... es que tiene tela la cosa!
Hasta ahí, es algo realmente indignante pero tolerable.
Pero es que si necesito firmar un archivo al margen del navegador, resulta que no puedo usar AutoFirma! Y la mejor respuesta que recibimos es que todos los errores que tiene AutoFirma quedarán resueltos en la versión 1.7.
Esa respuesta sería aceptable si mientras tanto pudiéramos tener una forma de hacer que AutoFirma funcione. Pero lo cierto es que estamos perdiendo el tiempo intentando que AutoFirma funcione en nuestros ordenadores cumpliendo con lo que nos obliga el estado. Yo uso la última versión de Fedora en 64 bits, y no logro entender cómo es posible que se tolere una situación en la que el servicio simplemente no va.
Si la solución ya la tienen, pues que se publique la versión 1.7 YA!
Y si todavía no está previsto que se publique la versión 1.7 hasta por lo menos dentro de una semana, pues que publiquen una versión de resolución de errores 1.6.6!
Sería lo mínimo! No puede ser que una nueva versión mayor sea una resolución de errores de la versión anterior. Los errores se tienen que quedar resueltos en las versiones que correspondan. Las versiones mayores se supone que aportan nuevas funcionalidades.
¿O es que se supone que de alguna forma tenemos que provisionarnos con el DNIe de otro certificado (de la FNMT, por ejemplo) y entonces usar AutoFirma con el certificado de la FNMT?
Por lo menos dígannos una solución!
Puedes utilizar libreoffice para firmar documentos. De todas manera, creo que tienes razón y es bastante frustrante.
Hola, ¿hay alguna idea aproximada de cuándo se va a solucionar esta incidencia? Ejecutando Autofirma desde Windows 7 me sale el error "No ha sido podible iniciar su DNIe". Ejecutando AutoFirma desde consola en Ubuntu 20.04 me sale el mismo error y en la consola aparece esto:
utoFirma
feb 02, 2021 6:25:58 PM es.gob.afirma.standalone.ProxyUtil clearJavaProxy
INFORMACIÓN: No se usara Proxy para las conexiones de red
feb 02, 2021 6:25:58 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: No se buscaran nuevas versiones de la aplicacion
feb 02, 2021 6:25:58 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFORMACIÓN: AutoFirma 1.6.5
Resolucion DPI de pantalla: 0
Sistema operativo: Linux
Version del SO: 5.9.15-050915-generic
Version de Java: 1.8.0_275
Arquitectura del JRE: 64
Java Vendor: Private Build
Localizacion por defecto: es_ES
Tamano actual en memoria: 232MB
Tamano maximo de memoria: 3440MB
Memoria actualmente libre: 165MB
feb 02, 2021 6:25:58 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Apertura como herramienta de escritorio
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
feb 02, 2021 6:25:58 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Se intenta una precarga temprana de NSS
feb 02, 2021 6:25:58 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFORMACIÓN: Configuracion de NSS para SunPKCS11:
name=NSSCrypto-AFirma
library=/usr/lib/thunderbird/libsoftokn3.so
attributes=compatibility
slot=2
showInfo=false
allowSingleThreadedModules=true
nssArgs="configdir='sql:/USERHOME/.mozilla/firefox/mzrir7gh.default' certPrefix='' keyPrefix='' flags='readOnly'"
feb 02, 2021 6:25:58 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNssJava8
INFORMACIÓN: NSS necesita una precarga o tratamiento de sus dependencias: java.lang.reflect.InvocationTargetException
feb 02, 2021 6:25:58 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNssJava8
ADVERTENCIA: Ha fallado el segundo intento de carga de NSS: java.lang.reflect.InvocationTargetException
feb 02, 2021 6:25:58 PM es.gob.afirma.keystores.mozilla.NssKeyStoreManager getNssProvider
GRAVE: Error obteniendo el proveedor NSS: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNssJava8(MozillaKeyStoreUtilities.java:680)
at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNSS(MozillaKeyStoreUtilities.java:727)
at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.getNssProvider(NssKeyStoreManager.java:122)
at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.init(NssKeyStoreManager.java:59)
at es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager.init(MozillaUnifiedKeyStoreManager.java:72)
at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getNssKeyStoreManager(AOKeyStoreManagerFactory.java:511)
at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getMozillaUnifiedKeyStoreManager(AOKeyStoreManagerFactory.java:542)
at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getAOKeyStoreManager(AOKeyStoreManagerFactory.java:133)
at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:646)
Caused by: java.security.ProviderException: Initialization failed
at sun.security.pkcs11.SunPKCS11.
feb 02, 2021 6:25:58 PM es.gob.afirma.keystores.AOKeyStoreManager init INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF feb 02, 2021 6:25:58 PM es.gob.afirma.keystores.AOKeyStoreManagerHelperFullJava init INFORMACIÓN: Cargando KeyStore 100% Java para DNIe y tarjetas FNMT-TIF feb 02, 2021 6:25:58 PM es.gob.jmulticard.card.dnie.DnieFactory getDnie INFORMACIÓN: Detectado DNIe 3.0 feb 02, 2021 6:25:59 PM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete ADVERTENCIA: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Parametro(s) incorrecto(s) P1-P2 (6B00). APDU de origen: 00-B0-07-70-B5 feb 02, 2021 6:25:59 PM es.gob.afirma.keystores.AOKeyStoreManager getCertificate GRAVE: Error intentando recuperar el certificado con el alias 'CertAutenticacion', se devolvera null: java.security.ProviderException: es.gob.jmulticard.card.CryptoCardException: Error en el establecimiento del canal seguro de PIN: es.gob.jmulticard.apdu.connection.ApduConnectionException: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80 feb 02, 2021 6:25:59 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers INFORMACIÓN: No se ha encontrado un DNIe: java.lang.NullPointerException feb 02, 2021 6:25:59 PM es.gob.afirma.keystores.AOKeyStoreManager init INFORMACIÓN: Inicializamos el almacen de tipo: Tarjeta FNMT-RCM CERES 4.30 o superior feb 02, 2021 6:25:59 PM es.gob.afirma.keystores.AOKeyStoreManagerHelperFullJava init INFORMACIÓN: Cargando KeyStore 100% Java para Tarjeta FNMT-RCM CERES 4.30 o superior feb 02, 2021 6:25:59 PM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete ADVERTENCIA: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Parametro(s) incorrecto(s) P1-P2 (6B00). APDU de origen: 00-B0-06-82-EE feb 02, 2021 6:25:59 PM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete ADVERTENCIA: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Parametro(s) incorrecto(s) P1-P2 (6B00). APDU de origen: 00-B0-07-70-CA feb 02, 2021 6:25:59 PM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete ADVERTENCIA: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Parametro(s) incorrecto(s) P1-P2 (6B00). APDU de origen: 00-B0-07-70-B5 feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers INFORMACIÓN: No se ha encontrado una tarjeta CERES 4.30 o superior: es.gob.jmulticard.card.InvalidCardException: Se esperaba una tarjeta de tipo 'CERES' pero se encontro otra con ATR=3B7F960000006A444E4965200101550421039000 feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.AOKeyStoreManager init INFORMACIÓN: Inicializamos el almacen de tipo: Tarjeta FNMT-RCM CERES feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers INFORMACIÓN: No se ha encontrado una tarjeta CERES: java.security.ProviderException: No se ha podido conectar con la tarjeta CERES: es.gob.jmulticard.card.InvalidCardException: Se esperaba una tarjeta de tipo 'CERES' pero se encontro otra con ATR=3B7F960000006A444E4965200101550421039000 feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules INFORMACIÓN: Se incluiran los modulos nativos de DNIe/CERES si se encuentran configurados feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules GRAVE: No se han podido obtener los modulos externos de Mozilla desde 'pkcs11.txt': java.io.FileNotFoundException: /home/blue/.mozilla/firefox/mzrir7gh.default/pkcs11.txt (Permiso denegado) feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules GRAVE: No se han podido obtener los modulos externos de Mozilla desde 'secmod.db': es.gob.afirma.core.AOException: El directorio del perfil de Mozilla proporcionado no contiene una base de datos de modulos (secmod.db) feb 02, 2021 6:26:00 PM es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init INFORMACIÓN: No se han encontrado modulos PKCS#11 externos instalados en Firefox feb 02, 2021 6:26:00 PM es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager INFORMACIÓN: Establecido KeyStoreManager: Gestor de almacenes de claves Mozilla / Firefox (unificado) con nombre Mozilla / Firefox (unificado) feb 02, 2021 6:26:00 PM es.gob.afirma.standalone.SimpleAfirma main INFORMACIÓN: Cargando plugins feb 02, 2021 6:26:00 PM es.gob.afirma.standalone.SimpleAfirma main INFORMACIÓN: Iniciando entorno grafico feb 02, 2021 6:26:02 PM es.gob.afirma.keystores.AOKeyStoreManager init INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF feb 02, 2021 6:26:02 PM es.gob.afirma.keystores.AOKeyStoreManagerHelperFullJava init INFORMACIÓN: Cargando KeyStore 100% Java para DNIe y tarjetas FNMT-TIF feb 02, 2021 6:26:02 PM es.gob.jmulticard.card.dnie.DnieFactory getDnie INFORMACIÓN: Detectado DNIe 3.0 feb 02, 2021 6:26:02 PM es.gob.jmulticard.card.iso7816four.Iso7816FourCard readBinaryComplete ADVERTENCIA: Se ha intentado una lectura fuera de los limites del fichero, se devolvera lo leido hasta ahora: es.gob.jmulticard.card.iso7816four.OffsetOutsideEfException: Parametro(s) incorrecto(s) P1-P2 (6B00). APDU de origen: 00-B0-07-70-B5 feb 02, 2021 6:26:03 PM es.gob.afirma.keystores.AOKeyStoreManager getCertificate GRAVE: Error intentando recuperar el certificado con el alias 'CertAutenticacion', se devolvera null: java.security.ProviderException: es.gob.jmulticard.card.CryptoCardException: Error en el establecimiento del canal seguro de PIN: es.gob.jmulticard.apdu.connection.ApduConnectionException: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: Error al verificar la cadena de certificados del controlador: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado de la CA intermedia de Terminal: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80: es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException: Error en la verificacion del certificado. Se obtuvo el error: 6A-80 feb 02, 2021 6:26:03 PM es.gob.afirma.standalone.SimpleKeyStoreManager getKeyStore GRAVE: No se ha podido inicializar el controlador 100% Java del DNIe: java.lang.NullPointerException
Pues en realidad con LibreOffice también hay bastantes problemas para poder hacer un firmado digital en condiciones.
Finalmente he conseguido firmar documentos con una herramienta de 2018. Dos mil dieciocho!!! http://www.sinadura.net/es/
Se les debería caer la cara de vergüenza.
Puedes utilizar libreoffice para firmar documentos. De todas manera, creo que tienes razón y es bastante frustrante.
@paubach sí es cierto que no es fácil el tema de la firma a nivel usuario. Tampoco entiendo por qué es tan difícil. Pero me parece descortés y fuera de lugar acusar al equipo de desarrolladores que de no tener vergüenza. A lo mejor, tú sabes más de las interioridades del desarrollo, pero por lo que yo sé parece bastante voluntariado o con pocos recursos. Al menos para las versiones MacOs i GNU/Linux.
Por otra parte espero que algún día alguien me explique la razón de utilizar java para este tipo de desarrollos.
^^ coincido en lo que dices de inicio, pero no veo el problema de usar Java. Que no te guste no significa que no sea la herramienta adecuada.
@flozano No es un tema de gustos. Mi pregunta es por qué es un lenguaje adecuado. Qué aporta de más?
Descortés? Al contrario. Quien se sienta aludid@ por algo será. Es una herramienta que el estado obliga a usar. Y que el estado desarrolla. Quien debe sentir vergüenza y por lo tanto darse por aludid@, es quien tenga responsabilidades en el asunto. Quien no las tenga no tiene porqué sentirse aludid@.
En cuanto al uso de Java, imagino que es por todas las ventajas que aporta, que no son pocas en cuanto a portabilidad entre distintas plataformas. Razón de más para que sea injustificable la falta de soporte y funcionalidad para Linux.
@paubach sí es cierto que no es fácil el tema de la firma a nivel usuario. Tampoco entiendo por qué es tan difícil. Pero me parece descortés y fuera de lugar acusar al equipo de desarrolladores que de no tener vergüenza. A lo mejor, tú sabes más de las interioridades del desarrollo, pero por lo que yo sé parece bastante voluntariado o con pocos recursos. Al menos para las versiones MacOs i GNU/Linux.
Por otra parte espero que algún día alguien me explique la razón de utilizar java para este tipo de desarrollos.
Bueno, después de echarle unas horas creo que he conseguido hacerlo funcionar (tengo un DNIe reciente con IDESP=BNZ1...) con estos pasos:
midirectorio
)java -cp ./midirectorio es.gob.afirma.standalone.SimpleAfirma
java -cp ./midirectorio es.gob.afirma.standalone.CommandLineLauncher listaliases -store dnie
)Y voilá! Ya puedo pulsar el botón de "continuar con DNIe", seleccionar fichero, elegir certificado (te ofrece el de autenticación y el de firma; yo usé el de firma), introducir el PIN, y decidir fichero de salida Espero que la receta le sirva a alguien.
Dicho lo cual: coincido con @paubach y me parece ABSOLUTAMENTE IMPRESENTABLE (puede que hasta denunciable) que las administraciones públicas me obliguen a usar una aplicación (autofirma) que tenga problemas de incompatibilidad con el DNIe que esas mismas administraciones me han proporcionado, y que 6 meses después de detectado el problema aún no esté resuelto. Entiendo perfectamente que los/las desarrolladores que leen estos issues no son los responsable de la situación, y hacen lo que pueden o más. Pero, por favor, escaladlo internamente a quien corresponda o dejad aquí una dirección a la que podamos quejarnos todos los afectados a ver si así se hace algo.
Y si hasta entonces pudieraís sacar (no se si lo permitirán) una release "no oficial" basada en los ultimos cambios de jmulticard, seguro que mucha gente lo agradecería.
Añado a la solución aportada por @jpc4242 , para reconstruir el .jar y sustituirlo por el original (necesario para ejecutar autofirma desde el navegador), basta con copiar los nuevos ficheros por los antiguos dentro del jar (puede hacerse con el propio file-roller de GNOME), y hay que "desfirmar" el jar. Para desfirmarlo, hay que borrar los ficheros MINISTER.RSA
y MINISTER.SF
de META-INF
, y hay que editar MANIFEST.MF
y borrar todas las líneas con los digest SHA-256 (básicamente todas las líneas después de Main-Class: es.gob.afirma.standalone.SimpleAfirma
)
Hola muy buenas a todos. A continuación describo como he conseguido que funcione correctamente el DNI 3.0 con Firefox, Autofirma dentro de Firefox o Autofirma standalone en modo app. Puedo autenticarme y firmar con mi DNI. He utilizado el DNIe para solicicar un certificado de la fnmt y todo ha ido a las mil maravillas. Lo voy a poner en modo guiaburros para que cualquiera pueda seguirlo. Quiero agradecer toda la info que he encontrado en esta página sin la cual no lo hubiera conseguido.
Entorno: Linux Firefox Autofirma 1.6.5
Lo primero arrancamos Autofirma, seleccionamos "continuar con cualquier certificado" Pulsamos ctrl-p (Yo no veo el menú herramientas) para entrar en las opciones y allí deshabilitamos la utilización de JMulticard Seleccionamos cualquier fichero pdf y pichamos en firmar... cuando lleguemos a la pantalla de selección del certificado evidentemente el dnie no aparecerá.
Peeero... Al haber tratado de firmar algo, hemos provocado una lectura de los certificados de sistema, así que en la consola donde arrancamos el Autofirma podremos ver una traza tal que así...
nssArgs="configdir='sql:/USERHOME/.mozilla/firefox/cf582qad.Vacio'
Ese es el perfil de firefox que autofirma va a utilizar para buscar nuestros certificados... cf582qad.Vacio es el mío... lo más habitual es que sea algo así como od234iddr.default
Así que ahora que ya sabeis el perfil lo primero que teneis que hacer es instalar el controlador PKCS11 del dnie de la dgp... lo podeis descargar desde la propia página del dnie yo por ejemplo me he descargado el paquete libpkcs11-dnie 1.6.1 disponible en Arch (es una copia del .deb para ubuntu de la página del dnie).
Chequeamos que tenemos el demonio de pcscd corriendo (esto depende de cada distribución) para asegurarnos de que funciona el lector de targetas. (systemcts enable pcscd.service en Arch)
Una vez instalado el módulo pkcs11 arrancamos firefox -p para que nos salga el selector de profiles Seleccionamos el profile que hemos visto en el primer paso que utilizaba la app Autofirma (El mío era "Vacio" aunque normalmente se llama "default") y vamos a configurar los dispositivos de seguridad disponibles para ese perfil...
Menú->Preferencias->Privacidad&seguridad->dispositivos de seguridad
Y aquí añadís el modulo del pkcs11 del dnie para ello pulsais en "cargar" a la derecha y cargais el módulo /usr/lib/libpkcs11-dnie.so dandole un nombre cualquiera (dnie3.0-dgp le he puesto yo)
Ahora podeis meter el dnie en el lector pinchar en Iniciar Sesión... con vuestro pin del dnie debería funcionar.
Y ya lo teneis... si usais normalmente otro perfil de firefox... cambiais de nuevo el perfil de firefox (firefox -p) e instalais en ese perfil el módulo de pkcs11 del dnie también.
Con esto ya os debería funcionar tanto en Firefox como en Autofirma como en Firefox+autofirma Autenticando y firmando.
No olvideis que siempre hay que seleccionar "continuar con cualquier certificado" para que lea los módulos pkcs11 del perfil de firefox en lugar de usar JMulticard
Espero que os funcione.....
Gracias a todos, con los cambios que comenta @Hitoprl me ha funcionado tanto vía desktop como a través del navegador. Los pongo más detallados:
Manifest-Version: 1.0
Implementation-Vendor: Gobierno de España
Implementation-Title: es.gob.afirma
Implementation-Version: build01
Application-Name: AutoFirma
Specification-Vendor: Gobierno de España
Build-Jdk: 11.0.2
Built-By: carlos.gamuci
Permissions: all-permissions
Specification-Title: AutoFirma
Created-By: Apache Maven 3.6.0
Specification-Version: 1.6.5
Main-Class: es.gob.afirma.standalone.SimpleAfirma
@2opremio, muchas gracias por la incidencia.
Sorprende ver que el desarrollo real del estándar de hecho de firma electrónica en España sea (al menos) tan accidentada.
He visto un error igual que el de @lepalom (también en la versión estable de Debian).
Además de que @albfernandez pueda actualizar su versión, tengo una pregunta para los expertos.
Debian estable ni siquiera instala opensc
(instalado es la versión 0.19).
El error con AutoFirma es precisamente que no es capaz de gestionar la clave privada.
Mi pregunta entonces es: ¿no se solucionaría instalando opensc-0.21
en Debian?
Perdonad, ése me parece que es el sentido de OpenSC/OpenSC#2109.
@iso9660, a mí en Windows 7 también me daba error.
Instalé el último módulo criptográfico para ese sistema operativo (https://www.sede.fnmt.gob.es/descargas/descarga-software) y me ha funcionado perfectamente desde entonces.
Las versiones de los módulos son, en mi caso:
Prueba a actualizar, porque en Windows te debería funcionar sólo con eso.
@pr-apes , yo he probado con un backport de opensc (0.21.0-1~bpo10+1) y no he conseguido que funciona en Debian stable (Buster). Y supongo que me hago viejo, pero ya no me sorprende nada de cómo funcionan la cosas en la administración pública cuando se trata de plataformas no Windows.
@lepalom, pues perdona, se ve que me equivoqué.
Parece que cuando hay problemas fuera de Windows. ni se notan en desarrollo.
Acabo de ver algo que lleva tiempo, depende dónde AutoFirma.jar
puede llamarse como Autofirma.jar
(el último que lo ha comentado es @jonsito en https://github.com/ctt-gob-es/clienteafirma/issues/51#issuecomment-834682230).
En Windows, ni se nota. En Unix puede hacer que no funcione nada (como comentan #42 y #182).
Hola muy buenas a todos. A continuación describo como he conseguido que funcione correctamente el DNI 3.0 con Firefox, Autofirma dentro de Firefox o Autofirma standalone en modo app. Puedo autenticarme y firmar con mi DNI. He utilizado el DNIe para solicicar un certificado de la fnmt y todo ha ido a las mil maravillas. Lo voy a poner en modo guiaburros para que cualquiera pueda seguirlo. Quiero agradecer toda la info que he encontrado en esta página sin la cual no lo hubiera conseguido.
Entorno: Linux Firefox Autofirma 1.6.5
Lo primero arrancamos Autofirma, seleccionamos "continuar con cualquier certificado" Pulsamos ctrl-p (Yo no veo el menú herramientas) para entrar en las opciones y allí deshabilitamos la utilización de JMulticard Seleccionamos cualquier fichero pdf y pichamos en firmar... cuando lleguemos a la pantalla de selección del certificado evidentemente el dnie no aparecerá.
Peeero... Al haber tratado de firmar algo, hemos provocado una lectura de los certificados de sistema, así que en la consola donde arrancamos el Autofirma podremos ver una traza tal que así...
nssArgs="configdir='sql:/USERHOME/.mozilla/firefox/cf582qad.Vacio'
Ese es el perfil de firefox que autofirma va a utilizar para buscar nuestros certificados... cf582qad.Vacio es el mío... lo más habitual es que sea algo así como od234iddr.default
Así que ahora que ya sabeis el perfil lo primero que teneis que hacer es instalar el controlador PKCS11 del dnie de la dgp... lo podeis descargar desde la propia página del dnie yo por ejemplo me he descargado el paquete libpkcs11-dnie 1.6.1 disponible en Arch (es una copia del .deb para ubuntu de la página del dnie).
Chequeamos que tenemos el demonio de pcscd corriendo (esto depende de cada distribución) para asegurarnos de que funciona el lector de targetas. (systemcts enable pcscd.service en Arch)
Una vez instalado el módulo pkcs11 arrancamos firefox -p para que nos salga el selector de profiles Seleccionamos el profile que hemos visto en el primer paso que utilizaba la app Autofirma (El mío era "Vacio" aunque normalmente se llama "default") y vamos a configurar los dispositivos de seguridad disponibles para ese perfil...
Menú->Preferencias->Privacidad&seguridad->dispositivos de seguridad
Y aquí añadís el modulo del pkcs11 del dnie para ello pulsais en "cargar" a la derecha y cargais el módulo /usr/lib/libpkcs11-dnie.so dandole un nombre cualquiera (dnie3.0-dgp le he puesto yo)
Ahora podeis meter el dnie en el lector pinchar en Iniciar Sesión... con vuestro pin del dnie debería funcionar.
Y ya lo teneis... si usais normalmente otro perfil de firefox... cambiais de nuevo el perfil de firefox (firefox -p) e instalais en ese perfil el módulo de pkcs11 del dnie también.
Con esto ya os debería funcionar tanto en Firefox como en Autofirma como en Firefox+autofirma Autenticando y firmando.
No olvideis que siempre hay que seleccionar "continuar con cualquier certificado" para que lea los módulos pkcs11 del perfil de firefox en lugar de usar JMulticard
Espero que os funcione.....
Buenas, estoy en Debian 11, con ésta solución fue la primera vez que vi que las cosas cambiaban. Al iniciar autofirma, antes de preguntarme si quiero usar el DNIe u otros certificados directamente ya me pide la contraseña del DNIe. Luego llega el menú en el que te pregunta si usar el DNIe u otros certificados y elijo otros certificados.
Tengo deshabilitado el JMulticard, selecciono un archivo, le pido que lo firme y ahora SI que me aparecen los dos certificados (de autentificación y de firma) del DNIe. Elijo el de firma pero me da error.
Tanto si tengo la sesión iniciada en dispositivos en firefox al mismo tiempo como si no, devuelve el siguiente error:
GRAVE: Error durante el proceso de firma: es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey
es.gob.afirma.core.AOException: Error durante la firma PAdES: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey
at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:206)
at es.gob.afirma.signers.pades.AOPDFSigner.cosign(AOPDFSigner.java:316)
at es.gob.afirma.standalone.ui.SignPanelSignTask.doSignature(SignPanelSignTask.java:201)
at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:99)
at es.gob.afirma.standalone.ui.SignPanelSignTask.doInBackground(SignPanelSignTask.java:60)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: es.gob.afirma.core.AOException: Error al inicializar la firma con la clave privada: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey
at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:81)
at es.gob.afirma.signers.pades.AOPDFSigner.sign(AOPDFSigner.java:194)
... 10 more
Caused by: java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11PrivateKey
at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1284)
at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1354)
at java.base/java.security.Signature.initSign(Signature.java:636)
at es.gob.afirma.core.signers.AOPkcs1Signer.sign(AOPkcs1Signer.java:78)
... 11 more
Tengo instalado opensc y opensc-pkcs11
No sé que más puedo probar...
A mi esto me parece flipante, no soy capaz de hacerlo funcionar en linux ni para atrás... usando debian buster, recién instalado, kernel estable con paquetes mas que estables, y no hay manera, he probado a compilar y recompilar y nada... que pasa si no tengo recursos para comprar windows... que se supone que tengo que hacer para tan siquiera sacarme el certificado de la fnmt... ¿les paso la factura? ¿O si tengo que compilarlo, como se lo explico a una persona de 56 años sin conocimientos de informática?
https://github.com/ctt-gob-es/jmulticard/blob/master/jmulticard/src/main/java/es/gob/jmulticard/card/dnie/DnieCwa14890Constants.java solo contiene soporte para el certificado raiz antiguo y no el que se está utilizando actualmente para expedir DNIe (
AC RAIZ COMPONENTES 2
)Más contexto en https://github.com/OpenSC/OpenSC/pull/2109