Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux error SAF_19 #16

Open
vk496 opened this issue Feb 10, 2018 · 83 comments
Open

Linux error SAF_19 #16

vk496 opened this issue Feb 10, 2018 · 83 comments

Comments

@vk496
Copy link

vk496 commented Feb 10, 2018

Buenas,

Tengo instalado Autofirma 1.6 en mi Linux (Manjaro 17), el cual no puedo utilizar a través del portal portafirmas de la Universidad de Murcia. Utilizo Firefox 58

Cuando procedo a firmar, recibo el siguiente error:

image

Utilizando la aplicación gráfica, no hay ningún problema: Me sale el diálogo del almacén de claves y puedo usar mi firma. Sin embargo, desde Firefox tengo el siguiente error y no sé dónde se consultan los certificados (el certificado está instalado en el almacén del navegador, por lo que supongo que no lo coge de ahi).

Un saludo,
Valentín

@Gamuci
Copy link
Contributor

Gamuci commented Feb 10, 2018 via email

@vk496
Copy link
Author

vk496 commented Feb 10, 2018

Buenas,

openjdk version "1.8.0_144"
OpenJDK Runtime Environment (build 1.8.0_144-b01)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)

Salu2

@alfem
Copy link

alfem commented Feb 12, 2018

Hace tiempo que no me pasa, pero antes era cosa de las libnss o un perfil corrupto de firefox.

Yo probaría a crear un perfil nuevo, cargar en él tu certificado y reinstalar Autofirma (si no lo reinstalas no te añadirá su propio certificado).

Autofirma lo instalas desde un paquete, no?

@vk496
Copy link
Author

vk496 commented Feb 12, 2018

Acabo de probarlo, y nada. Sigue saliendo el mismo error...

Para hacerlo en limpio, he renombrado la carpeta .mozilla e instalado mi certificado y el CA de la FNMT. Luego he cerrado firefox y reinstalado el paquete autofirma. A continuación, entré en la web para probar nuevamente, pero sigue apareciendo el error.

@alfem Si, uso el paquete de AUR pero modificado para instalar la 1.6:

https://gist.github.com/vk496/1196ec3a13689cd66a77e96e4b1f0cca

Salu2

@vk496
Copy link
Author

vk496 commented Feb 12, 2018

He visto que el log se encuentra en .afirma. He probado a hacer nuevamente una ejecución en limpio, pero además renombrando la carpeta .pki, pero no ha surgido ningún resultado. Adjunto la saldia:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202147</millis>
  <sequence>0</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.ProxyUtil</class>
  <method>setDefaultProxy</method>
  <thread>1</thread>
  <message>Las conexiones para protocolo 'http' son por defecto de tipo: DIRECT</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202179</millis>
  <sequence>1</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.ProxyUtil</class>
  <method>setDefaultProxy</method>
  <thread>1</thread>
  <message>Las conexiones para protocolo 'https' son por defecto de tipo: DIRECT</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202179</millis>
  <sequence>2</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.ProxyUtil</class>
  <method>setProxySettings</method>
  <thread>1</thread>
  <message>No se usara Proxy para las conexiones de red</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202181</millis>
  <sequence>3</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.SimpleAfirma</class>
  <method>main</method>
  <thread>1</thread>
  <message>No se buscaran nuevas versiones de la aplicacion</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202185</millis>
  <sequence>4</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.SimpleAfirma</class>
  <method>printSystemInfo</method>
  <thread>1</thread>
  <message>Resolucion DPI de pantalla: 0
Sistema operativo: Linux
Version del SO: 4.14.16-1-MANJARO
Version de Java: 1.8.0_144
Arquitectura del JRE: 64
Java Vendor: Oracle Corporation
Localizacion por defecto: es_ES
Tamano actual en memoria: 75MB
Tamano maximo de memoria: 862MB
Memoria actualmente libre: 52MB</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202188</millis>
  <sequence>5</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.SimpleAfirma</class>
  <method>main</method>
  <thread>1</thread>
  <message>Invocacion por protocolo con URL:
afirma://service?ports=56438,60250,63316&amp;v=1&amp;idsession=p8NVMzqycWsRPhjU4o2D</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202199</millis>
  <sequence>6</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher</class>
  <method>launch</method>
  <thread>1</thread>
  <message>Se inicia la invocacion por servicio: afirma://service?ports=56438,60250,63316&amp;v=1&amp;idsession=p8NVMzqycWsRPhjU4o2D</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202206</millis>
  <sequence>7</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>startService</method>
  <thread>1</thread>
  <message>Se utilizara el siguiente almacen para establecer el socket SSL: /usr/lib/AutoFirma/autofirma.pfx</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202365</millis>
  <sequence>8</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>startService</method>
  <thread>1</thread>
  <message>Iniciando servicio local de firma: afirma://service?ports=56438,60250,63316&amp;v=1&amp;idsession=p8NVMzqycWsRPhjU4o2D</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202366</millis>
  <sequence>9</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>getPorts</method>
  <thread>1</thread>
  <message>Se ha recibido un idSesion para la transaccion: p8NVMzqycWsRPhjU4o2D</message>
</record>
<record>
  <date>2018-02-12T11:10:02</date>
  <millis>1518430202368</millis>
  <sequence>10</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>tryPorts</method>
  <thread>1</thread>
  <message>Establecido el puerto 56438 para el servicio Cliente @firma</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203483</millis>
  <sequence>11</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>startService</method>
  <thread>1</thread>
  <message>Detectada conexion entrante</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203551</millis>
  <sequence>12</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>getCommandUri</method>
  <thread>19</thread>
  <message>Recibido comando de tipo: echo=</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203552</millis>
  <sequence>13</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>doEchoPetition</method>
  <thread>19</thread>
  <message>Comando URI recibido por HTTP: echo=</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203554</millis>
  <sequence>14</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>sendData</method>
  <thread>19</thread>
  <message>Mandando respuesta a la peticion: echo=</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203558</millis>
  <sequence>15</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>startService</method>
  <thread>1</thread>
  <message>Detectada conexion entrante</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203565</millis>
  <sequence>16</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>getCommandUri</method>
  <thread>20</thread>
  <message>Recibido comando de tipo: cmd=</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203566</millis>
  <sequence>17</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>doCmdPetition</method>
  <thread>20</thread>
  <message>Comando URI recibido por HTTP: afirma://selectcert?op=selectcert&amp;properties=ZmlsdGVycz1zdWJqZWN0LmNvbnRhaW5zOlg5NDAwOTYx</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203568</millis>
  <sequence>18</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.core.misc.protocol.ProtocolInvocationUriParser</class>
  <method>parserUri</method>
  <thread>20</thread>
  <message>URI recibida: afirma://selectcert?op=selectcert&amp;properties=ZmlsdGVycz1zdWJqZWN0LmNvbnRhaW5zOlg5NDAwOTYx</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203596</millis>
  <sequence>19</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.mozilla.shared.SharedNssUtil</class>
  <method>getSharedUserProfileDirectory</method>
  <thread>20</thread>
  <message>Detectado directorio de perfil de NSS: ̴/.pki/nssdb</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203597</millis>
  <sequence>20</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities</class>
  <method>loadNSS</method>
  <thread>20</thread>
  <message>Configuracion de NSS para SunPKCS11:
name=NSSCrypto-AFirma
library=/usr/lib64/libsoftokn3.so
attributes=compatibility
slot=2
showInfo=false
allowSingleThreadedModules=true
nssArgs="configdir='sql:/USERHOME/.pki/nssdb' certPrefix='' keyPrefix='' flags='readOnly'"</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203617</millis>
  <sequence>21</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities</class>
  <method>loadNSS</method>
  <thread>20</thread>
  <message>Proveedor PKCS#11 para NSS anadido para perfil compartido: SunPKCS11-NSSCrypto-AFirma</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203622</millis>
  <sequence>22</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.AOKeyStoreManager</class>
  <method>init</method>
  <thread>20</thread>
  <message>Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203650</millis>
  <sequence>23</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.KeyStoreUtilities</class>
  <method>addPreferredKeyStoreManagers</method>
  <thread>20</thread>
  <message>No se ha encontrado un DNIe: java.security.ProviderException: No se ha podido inicializar el proveedor de DNIe: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se detectaron lectores de tarjetas en el sistema</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203651</millis>
  <sequence>24</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.AOKeyStoreManager</class>
  <method>init</method>
  <thread>20</thread>
  <message>Inicializamos el almacen de tipo: G&amp;D SmartCafe con Applet PKCS#15</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203656</millis>
  <sequence>25</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.KeyStoreUtilities</class>
  <method>addPreferredKeyStoreManagers</method>
  <thread>20</thread>
  <message>No se ha encontrado una tarjeta G&amp;D SmartCafe: java.security.ProviderException: No se ha podido inicializar el proveedor: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se detectaron lectores de tarjetas en el sistema</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203657</millis>
  <sequence>26</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities</class>
  <method>getMozillaPKCS11Modules</method>
  <thread>20</thread>
  <message>Se incluiran los modulos nativos de DNIe/CERES si se encuentran configurados</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203659</millis>
  <sequence>27</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities</class>
  <method>getMozillaPKCS11Modules</method>
  <thread>20</thread>
  <message>Obtenidos los modulos externos de Mozilla desde 'pkcs11.txt'</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203662</millis>
  <sequence>28</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager</class>
  <method>init</method>
  <thread>20</thread>
  <message>No se han encontrado modulos PKCS#11 externos instalados en Firefox</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203663</millis>
  <sequence>29</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherSelectCert</class>
  <method>processSelectCert</method>
  <thread>20</thread>
  <message>Obtenido gestor de almacenes de claves: Gestor de almacenes de claves NSS con nombre NSS</message>
</record>
<record>
  <date>2018-02-12T11:10:03</date>
  <millis>1518430203666</millis>
  <sequence>30</sequence>
  <logger>es.gob.afirma</logger>
  <level>SEVERE</level>
  <class>es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherSelectCert</class>
  <method>processSelectCert</method>
  <thread>20</thread>
  <message>No hay certificados validos en el almacen: es.gob.afirma.keystores.AOCertificatesNotFoundException: No se han encontrado certificados en el almacen acordes a los filtros establecidos</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208837</millis>
  <sequence>31</sequence>
  <logger>es.gob.afirma</logger>
  <level>SEVERE</level>
  <class>es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherErrorManager</class>
  <method>showError</method>
  <thread>20</thread>
  <message>Ha ocurrido un error realizando la operación.
(SAF_19: No hay ningun certificado válido en su almacén. Compruebe las fechas de caducidad e instale un certificado válido.)</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208838</millis>
  <sequence>32</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>calculateNumberPartsResponse</method>
  <thread>20</thread>
  <message>Se mandaran 1partes</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208839</millis>
  <sequence>33</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>calculateNumberPartsResponse</method>
  <thread>20</thread>
  <message>tam total=122</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208840</millis>
  <sequence>34</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>calculateNumberPartsResponse</method>
  <thread>20</thread>
  <message>Tamano de la parte 1 =122</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208841</millis>
  <sequence>35</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>sendData</method>
  <thread>20</thread>
  <message>Mandando respuesta a la peticion: Se mandaran 1 partes</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208873</millis>
  <sequence>36</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>startService</method>
  <thread>1</thread>
  <message>Detectada conexion entrante</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208877</millis>
  <sequence>37</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>getCommandUri</method>
  <thread>24</thread>
  <message>Recibido comando de tipo: send=</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208878</millis>
  <sequence>38</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>doSendPetition</method>
  <thread>24</thread>
  <message>Comando URI recibido por HTTP: @1@1</message>
</record>
<record>
  <date>2018-02-12T11:10:08</date>
  <millis>1518430208879</millis>
  <sequence>39</sequence>
  <logger>es.gob.afirma</logger>
  <level>INFO</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>sendData</method>
  <thread>24</thread>
  <message>Mandando respuesta a la peticion: Mandada la parte 1 de 1</message>
</record>
<record>
  <date>2018-02-12T11:11:38</date>
  <millis>1518430298881</millis>
  <sequence>40</sequence>
  <logger>es.gob.afirma</logger>
  <level>WARNING</level>
  <class>es.gob.afirma.standalone.protocol.ServiceInvocationManager</class>
  <method>lambda$static$0</method>
  <thread>25</thread>
  <message>Se ha caducado la conexion. Se deja de escuchar en el puerto...</message>
</record>
</log>

@alfem
Copy link

alfem commented Feb 23, 2018

Tienes instalado también el paquete ibnss3-tools ?

@vk496
Copy link
Author

vk496 commented Feb 26, 2018

Hola,

No lo tenía instalado (en Arch no está marcado como dependencia). Lo he instalado (lib32-nss) y vuelto a probar, pero sigue saliendo el mismo error.

Salu2

@alfem
Copy link

alfem commented Feb 27, 2018

lib32-nss? Pero tienes 64 bits, no?

Yo comprobaría que tienes estos enlaces a las librerías nss:

https://github.com/gecos-team/java-nss-fix/blob/trusty/gcs/install_scripts/pos/create_symlinks

@vk496
Copy link
Author

vk496 commented Feb 27, 2018

Buenas,

Si, tengo el de 64 bits. El paquete para Arch se llama así.

Respecto a los enlaces simbólicos, no tengo ninguno de los que termina en .1d

Salu2

@alfem
Copy link

alfem commented Mar 5, 2018

Yo firmo con Firefox 52.6.0 (64-bit) ESR (Extended Support Release).

Podrías probar a cerrar tu Ffox, e instalar esta versión de forma independiente (en /opt por ejemplo). A ver si hay suerte.

@pendrag
Copy link

pendrag commented Mar 7, 2018

Hola.
Yo tengo el mismo problema. He probado con Firefox-dev, con Firefox 52.0.2, con Firefox 58.0.2 y con AutoFirma 1.6.1
Igualmente puedo usar la aplicación de forma independiente para firmar sin problema, y me coge los certificados que tengo instalados en Firefox, pero al firmar un documento desde el propio navegador (en este caso, la escolarización en ESO de mi hija a través de la aplicación de la Junta de Andalucía), nada, me da ese fallo "SAF_19".
Todo lo que se comenta en este hilo lo he probado sin éxito.

:-(

@alfem
Copy link

alfem commented Mar 8, 2018

Otras cosillas que comprobar:

  • En el Firefox deberías tener una Autoridad de Certificación llamada "Autofirma ROOT LOCAL" (la carga el instalador de AutoFirma).
  • En /usr/lib/AutoFirma debes tener un fichero autofirma.pfx que es el que usa el programa AutoFirma para comunicarse de forma segura con el Firefox.

@i-eperez
Copy link

i-eperez commented Mar 9, 2018

Parece que el applet de autofirma utiliza el almacén de llaves ubicado en ~/.pki/nssdb. Yo he resuelto este problema generando enlaces simbólicos sobre el almacén de llaves de firefox donde previamente he añadido mi certificado digital.

MOZ_PROFILE=$(grep Path $HOME/.mozilla/firefox/profiles.ini|cut -d "=" -f2) \
&& if [ ! -d $HOME/.pki/nssdb ]; then mkdir -p $HOME/.pki/nssdb; fi \
&& ln -sf $HOME/.mozilla/firefox/$MOZ_PROFILE/*.db $HOME/.pki/nssdb/

Entorno:

Debian 10
Gnome 1:3.22+3
Firefox 52.6.0
Autofirma 1.6.1

@alfem
Copy link

alfem commented Mar 9, 2018

Tendría que comprobarlo pero aunque el instalador oficial mete el certificado en .pki/nssdb, en realidad creo que no lo usa para nada. Ese fichero es para Gnome-Keyring, no para Firefox.

@vk496
Copy link
Author

vk496 commented Mar 11, 2018

@i-eperez Muchas gracias!

Efectivamente, haciendo enlaces simbólicos de las db de firefox a ~/.pki/nssdb, funciona perfectamente.

Salu2

@alfem
Copy link

alfem commented Mar 12, 2018

Que cosa más rara. Mi Firefox guarda los certificados en el directorio del perfil, en un fichero cert8 que está en formato dbm, mientras que en .pki/nssdb hay un cert9, que está en formato sqlite3.

@pendrag
Copy link

pendrag commented Mar 17, 2018

Finalmente he firmado desde Windows 10, pero en ese caso, aunque configuraba AutoFirma para usar el almacén de claves de Firefox, desde el applet solo busca en Internet Explorer.
En cuanto a Linux, tomo nota de la solución de arriba para probarlo la próxima vez que tenga que hacer algo con la Junta.

Gracias.

@ssaavedra
Copy link
Contributor

@alfem no es muy fácil seguir la traza del código, pero si ves en loadNssJava8 (y también en la versión para Java 9), se intenta cargar el certificado de NSS primero como un cert8 en dbm y después como un sqlite3. El funcionamiento de la clase que aparece invocada por reflexión como class.forName(SUN_PKCS11_PROVIDER_CLASSNAME) se documenta en https://docs.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html) y la ruta sale de la subrutina loadNss (y le llamo subrutina porque una serie de clases no instanciables que solo tienen métodos estáticos no es orientación a objetos).

Lo que no entiendo es de dónde sale el ~/.pki/nssdb, que yo en el código no lo encuentro, el camino que veo es que viene por getMozillaUserProfileDirectory y dentro, con el resultado de getProfilesIniPath llama a NSPreferences.getFirefoxUserProfileDirectory.

Mañana probaré a hacer lo que decís del enlace simbólico.

De todos modos, mi caso (Fedora 64 bits) además de esto parece que tampoco encuentra siempre las librerías de Firefox de 64 bits puesto que aunque en este comentario parezca que se haya tenido en cuenta a la distribución esto debe de ser de alguna versión antigua y EOL; en las versiones actuales de Fedora, /lib es un symlink de /usr/lib y /lib64 un symlink de /usr/lib64, diferenciándose de otras distros en que /usr/lib es el emplazamiento de las bibliotecas de 32 bits, y /usr/lib64 las de las bibliotecas de 64 bits en un sistema x86_64; y por lo tanto en esta lista (y a lo mejor en alguna otra que yo no he visto) haría falta incluir /usr/lib64/firefox en un sistema x86_64 (es decir, cuando Platform.getJavaArch().equals("64")).

@dachirui
Copy link

dachirui commented Jun 7, 2018

@i-eperez Gracias, tenía el mismo problema que @vk496 y he podido solucionarlo.

@davidjguru
Copy link

davidjguru commented Jun 17, 2018

Buenas noches. Estaba dándole caña a todo el proceso de Autofirma y dándome de cabezazos mientras debugueaba a ciegas.
La solución aportada en este thread por @i-eperez es lo único que me ha funcionado.
#16 (comment)

Entorno:
AutoFirma - 1.6.2
SO - Lubuntu 17.10 (64)
Java - 1.8.0_144
Navegador - Firefox 59.0.2 (64)

@alfem
Copy link

alfem commented Jun 19, 2018

Yo acabo de empaquetar y probar la 60ESR y no consigo firmar. Salta el SAF_19, incluso enlazando el .pki. Habra que "cavar" un poco más.

@alfem
Copy link

alfem commented Jun 21, 2018

Uf. Ya firmo con Firefox60ESR y Autofirma 1.6.1.

Y he comprobado que no tengo el directorio .pki/nssdb

@Eskorpio
Copy link

Eskorpio commented Jul 1, 2018

@alfem ¿y cómo lo has conseguido?, yo uso ubuntu 18.04 con Firefox 60 ESR y no hay manera

@alfem
Copy link

alfem commented Jul 2, 2018

Uso GECOS, y la última estable está basada en Ubuntu 16.04 (aunque va con Cinnamon como escritorio) http://gecos-team.github.io/

Ahora que la nueva Mint ha salido empezaremos a probar Autofirma contra Ubuntu 18.04. A ver qué pasa.

@alfem
Copy link

alfem commented Jul 2, 2018

Acabo de probar en una ubuntu 18.04 con firefox60.0.2esr y Autofirma 1.6.1, y la firma desde varias web funciona correctamente.

Eso sí, los paquetes de firefox y autofirma son "un poco especiales" para GECOS.

@joseanrey
Copy link

joseanrey commented Jul 10, 2018

Buenos días!
Acabo de reproducir este error en Linux Mint 19 Tara, Firefox 61.0 y AutoFirma 1.6.2, solucionado con el método de @i-eperez en su comentario

Era una cosa que me traía de cabeza,
Muchas gracias!

@ijj517
Copy link

ijj517 commented Jul 18, 2018

Buenos días
A ver si me podéis ayudar con este error que me trae de cabeza y me hace recurrir a "otros ordenadores" cada vez que tengo que firmar algo...

Tengo autofirma 1.6.2 y firefox 61.0.1 (64bits) instalados en Ubuntu 16.04 (64 bits) y tengo ese mismo error (SAF 19) que no consigo solucionar creando los enlaces simbólicos que se indicaban en el comentario de i-eperez...

Creo que quizá debo tener un error previo porque no me funciona la aplicación lanzándola desde el escritorio ni cuando es invocada desde firefox. Bueno, funciona pero no puede firmar porque me sale el error SAF 19

Esta es la salida que se encuentra en el directorio .afirma

AUTOFIRMA.afirma.log

Quizá el error tiene que ver con
Error obteniendo el proveedor NSS: java.lang.reflect.InvocationTargetException

También me extraña esta línea
library=/usr/lib/i386-linux-gnu/nss/libsoftokn3.so

Al instalar autofirma el terminal también daba algún error

Seleccionando el paquete autofirma previamente no seleccionado.
(Leyendo la base de datos ... 306858 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar AutoFirma_1_6_2.deb ...
30666
Desempaquetando autofirma (1.6.2) ...
Configurando autofirma (1.6.2) ...
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.AutoFirmaConfigurator
INFORMACIÓN: Se configurara la aplicacion en modo nativo
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConsoleManager getConsole
INFORMACIÓN: Se utilizara la consola de tipo I/O
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConfiguratorLinux configure
INFORMACIÓN: Identificando directorio de aplicación...
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConfiguratorLinux configure
INFORMACIÓN: Directorio de aplicación: /usr/lib/AutoFirma
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConfiguratorLinux configure
INFORMACIÓN: Generando certificado para la comunicación con el navegador web...
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConfiguratorLinux configure
INFORMACIÓN: Se guarda el almacén de claves en el directorio de instalación de la aplicación
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConfiguratorLinux configure
INFORMACIÓN: Se va a instalar el certificado en el almacen de Mozilla Firefox
jul 18, 2018 2:33:30 PM es.gob.afirma.standalone.configurator.ConfiguratorLinux configure
INFORMACIÓN: Fin de la configuración
Generacion de certificados
certutil: could not add certificate to token or database: SEC_ERROR_ADDING_CERT: Error adding certificate to database.

Instalacion del certificado CA en el almacenamiento de Firefox y Chrome
Updating certificates in /etc/ssl/certs...
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Replacing debian:AutoFirma_ROOT.pem
Replacing debian:AutoFirma_ROOT.pem
done.
done.
Instalacion del certificado CA en el almacenamiento del sistema
Procesando disparadores para desktop-file-utils (0.22-1ubuntu5.2) ...
Procesando disparadores para bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Procesando disparadores para gnome-menus (3.13.3-6ubuntu3.1) ...
Procesando disparadores para mime-support (3.59ubuntu1) ...

Y al ejecutar el programa desde consola:

jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.ProxyUtil setDefaultProxy
INFORMACIÓN: Las conexiones para protocolo 'http' son por defecto de tipo: DIRECT
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.ProxyUtil setDefaultProxy
INFORMACIÓN: Las conexiones para protocolo 'https' son por defecto de tipo: DIRECT
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.ProxyUtil setProxySettings
INFORMACIÓN: No se usara Proxy para las conexiones de red
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: No se buscaran nuevas versiones de la aplicacion
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFORMACIÓN: Resolucion DPI de pantalla: 0
Sistema operativo: Linux
Version del SO: 4.4.0-130-generic
Version de Java: 1.8.0_171
Arquitectura del JRE: 64
Java Vendor: Oracle Corporation
Localizacion por defecto: es_ES
Tamano actual en memoria: 150MB
Tamano maximo de memoria: 1748MB
Memoria actualmente libre: 113MB
jul 18, 2018 7:24:45 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.
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Se intenta una precarga temprana de NSS
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFORMACIÓN: Configuracion de NSS para SunPKCS11:
name=NSSCrypto-AFirma
library=/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
attributes=compatibility
slot=2
showInfo=false
allowSingleThreadedModules=true
nssArgs="configdir='sql:/USERHOME/.mozilla/firefox/q11720mw.default' certPrefix='' keyPrefix='' flags='readOnly'"
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNssJava8
INFORMACIÓN: NSS necesita una precarga o tratamiento de sus dependencias: java.lang.reflect.InvocationTargetException
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNssJava8
ADVERTENCIA: Ha fallado el segundo intento de carga de NSS: java.lang.reflect.InvocationTargetException
jul 18, 2018 7:24:45 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:671)
at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNSS(MozillaKeyStoreUtilities.java:718)
at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.getNssProvider(NssKeyStoreManager.java:111)
at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.init(NssKeyStoreManager.java:58)
at es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager.init(MozillaUnifiedKeyStoreManager.java:68)
at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getNssKeyStoreManager(AOKeyStoreManagerFactory.java:488)
at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getMozillaUnifiedKeyStoreManager(AOKeyStoreManagerFactory.java:519)
at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getAOKeyStoreManager(AOKeyStoreManagerFactory.java:116)
at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:571)
Caused by: java.security.ProviderException: Initialization failed
at sun.security.pkcs11.SunPKCS11.(SunPKCS11.java:376)
at sun.security.pkcs11.SunPKCS11.(SunPKCS11.java:107)
... 13 more
Caused by: java.io.IOException: /usr/lib/i386-linux-gnu/nss/libsoftokn3.so: clase ELF errónea: ELFCLASS32/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
at sun.security.pkcs11.wrapper.PKCS11.connect(Native Method)
at sun.security.pkcs11.wrapper.PKCS11.(PKCS11.java:138)
at sun.security.pkcs11.wrapper.PKCS11.getInstance(PKCS11.java:151)
at sun.security.pkcs11.SunPKCS11.(SunPKCS11.java:313)
... 14 more

jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers
INFORMACIÓN: No se ha encontrado un DNIe: java.security.ProviderException: No se ha podido inicializar el proveedor de DNIe: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se detectaron lectores de tarjetas en el sistema
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules
INFORMACIÓN: Se incluiran los modulos nativos de DNIe/CERES si se encuentran configurados
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules
INFORMACIÓN: Obtenidos los modulos externos de Mozilla desde 'pkcs11.txt'
jul 18, 2018 7:24:45 PM es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init
INFORMACIÓN: No se han encontrado modulos PKCS#11 externos instalados en Firefox
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager
INFORMACIÓN: Establecido KeyStoreManager: Gestor de almacenes de claves Mozilla / Firefox (unificado) con nombre Mozilla / Firefox (unificado)
jul 18, 2018 7:24:45 PM es.gob.afirma.standalone.SimpleAfirma loadDefaultKeyStore
INFORMACIÓN: Se omite la carga concurrente de almacen por haberse hecho una precarga previa
jul 18, 2018 7:25:05 PM es.gob.afirma.keystores.AggregatedKeyStoreManager getAliases
ADVERTENCIA: No se pudieron obtener los alias del almacen Mozilla / Firefox (unificado): java.lang.IllegalStateException: Se han pedido alias a un almacen no inicializado
jul 18, 2018 7:25:05 PM es.gob.afirma.standalone.ui.SignPanelSignTask doSignature
GRAVE: El almacen no contiene ningun certificado que se pueda usar para firmar: es.gob.afirma.keystores.AOCertificatesNotFoundException: No se han encontrado certificados en el almacen acordes a los filtros establecidos

Espero que alguién sea capaz de ponerme en la pista de los errores... no tengo una gran experiencia a este nivel y me acabo perdiendo un poco.

Gracias de antemano.

@alfem
Copy link

alfem commented Jul 20, 2018

Sí que es raro. Parece que tienes una ubuntu 64bits, pero con las librerías i386.

¿Podrías lanzar esto y pegar el resultado?

dpkg -l libnss*

@fjfrancopelaez
Copy link

Acabo de probar la solución de @i-eperez y ¡funciona! Mis datos son:

Sistema operativo: Linux (Xubuntu 18.04 64 bits)
Version del SO: 4.15.0-29-generic
Version de Java: 1.8.0_181
Arquitectura del JRE: 64
Java Vendor: "Oracle Corporation"

Eso sí, debo indicar me ha funcionado con java-8-oracle como máquina de java. Cuando cambio a java-10-oracle (10.0.2), que es la última versión disponible, el programa deja de funcionar. Os indico qué sale en AutoFirma cuando lo ejecuto en el terminal con Java 10.


jul. 24, 2018 2:34:50 P. M. es.gob.afirma.standalone.ProxyUtil setDefaultProxy
INFORMACIÓN: Las conexiones para protocolo 'http' son por defecto de tipo: DIRECT
jul. 24, 2018 2:34:50 P. M. es.gob.afirma.standalone.ProxyUtil setDefaultProxy
INFORMACIÓN: Las conexiones para protocolo 'https' son por defecto de tipo: DIRECT
jul. 24, 2018 2:34:50 P. M. es.gob.afirma.standalone.ProxyUtil setProxySettings
INFORMACIÓN: No se usara Proxy para las conexiones de red
jul. 24, 2018 2:34:50 P. M. es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: No se buscaran nuevas versiones de la aplicacion
jul. 24, 2018 2:34:50 P. M. es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFORMACIÓN: Resolucion DPI de pantalla: 0
Sistema operativo: Linux
Version del SO: 4.15.0-29-generic
Version de Java: 10.0.2
Arquitectura del JRE: 64
Java Vendor: "Oracle Corporation"
Localizacion por defecto: es_ES
Tamano actual en memoria: 124MB
Tamano maximo de memoria: 1984MB
Memoria actualmente libre: 77MB
jul. 24, 2018 2:34:50 P. M. es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Apertura como herramienta de escritorio
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Se intenta una precarga temprana de NSS
jul. 24, 2018 2:34:51 P. M. 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/aymueb4l.default' certPrefix='' keyPrefix='' flags='readOnly'"
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNssJava8
INFORMACIÓN: NSS necesita una precarga o tratamiento de sus dependencias: java.lang.NoSuchMethodException: sun.security.pkcs11.SunPKCS11.<init>(java.io.InputStream)
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.mozilla.NssKeyStoreManager getNssProvider
GRAVE: Error obteniendo el proveedor NSS: java.lang.NoSuchMethodException: sun.security.pkcs11.SunPKCS11.<init>(java.io.InputStream)
java.lang.NoSuchMethodException: sun.security.pkcs11.SunPKCS11.<init>(java.io.InputStream)
	at java.base/java.lang.Class.getConstructor0(Class.java:3302)
	at java.base/java.lang.Class.getConstructor(Class.java:2110)
	at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNssJava8(MozillaKeyStoreUtilities.java:641)
	at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNSS(MozillaKeyStoreUtilities.java:684)
	at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.getNssProvider(NssKeyStoreManager.java:111)
	at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.init(NssKeyStoreManager.java:58)
	at es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager.init(MozillaUnifiedKeyStoreManager.java:68)
	at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getNssKeyStoreManager(AOKeyStoreManagerFactory.java:488)
	at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getMozillaUnifiedKeyStoreManager(AOKeyStoreManagerFactory.java:519)
	at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getAOKeyStoreManager(AOKeyStoreManagerFactory.java:116)
	at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:571)

jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers
INFORMACIÓN: No se ha encontrado un DNIe: java.security.ProviderException: No se ha podido inicializar el proveedor de DNIe: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se detectaron lectores de tarjetas en el sistema
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: G&D SmartCafe con Applet PKCS#15
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers
INFORMACIÓN: No se ha encontrado una tarjeta G&D SmartCafe: java.security.ProviderException: No se ha podido inicializar el proveedor: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se detectaron lectores de tarjetas en el sistema
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules
INFORMACIÓN: Se incluiran los modulos nativos de DNIe/CERES si se encuentran configurados
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules
INFORMACIÓN: Obtenidos los modulos externos de Mozilla desde 'pkcs11.txt'
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init
INFORMACIÓN: No se han encontrado modulos PKCS#11 externos instalados en Firefox
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager
INFORMACIÓN: Establecido KeyStoreManager: Gestor de almacenes de claves Mozilla / Firefox (unificado) con nombre Mozilla / Firefox (unificado)
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by es.gob.afirma.standalone.SimpleAfirma (file:/usr/lib/AutoFirma/AutoFirma.jar) to field sun.awt.X11.XToolkit.awtAppClassName
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
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.
jul. 24, 2018 2:34:51 P. M. es.gob.afirma.standalone.SimpleAfirma loadDefaultKeyStore
INFORMACIÓN: Se omite la carga concurrente de almacen por haberse hecho una precarga previa
jul. 24, 2018 2:35:03 P. M. es.gob.afirma.standalone.ui.pdf.PageLabel <init>
INFORMACIÓN: Factor de escala de las paginas: 2.0997505
jul. 24, 2018 2:35:09 P. M. es.gob.afirma.standalone.ui.pdf.SignPdfDialog positionSelected
INFORMACIÓN: Propiedades establecidas mediante GUI: {layer2Text=Firmado por $$SUBJECTCN$$ el día $$SIGNDATE=dd/MM/yyyy$$ con un certificado emitido por $$ISSUERCN$$, signaturePositionOnPageUpperRightX=527, signaturePositionOnPageLowerLeftY=21, layer2FontColor=black, signaturePositionOnPageLowerLeftX=160, signaturePositionOnPageUpperRightY=147, layer2FontSize=12, signaturePage=1, layer2FontFamily=0, layer2FontStyle=0}
jul. 24, 2018 2:35:09 P. M. es.gob.afirma.keystores.AggregatedKeyStoreManager getAliases
ADVERTENCIA: No se pudieron obtener los alias del almacen Mozilla / Firefox (unificado): java.lang.IllegalStateException: Se han pedido alias a un almacen no inicializado
jul. 24, 2018 2:35:09 P. M. es.gob.afirma.standalone.ui.SignPanelSignTask doSignature
GRAVE: El almacen no contiene ningun certificado que se pueda usar para firmar: es.gob.afirma.keystores.AOCertificatesNotFoundException: No se han encontrado certificados en el almacen acordes a los filtros establecidos

@ijj517
Copy link

ijj517 commented Jul 25, 2018

Hola Alfem, siento la tardanza en contestar...

Este es el resultado de dpkg -l libnss*

Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/pendienTe-disparo
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre Versión Arquitectura Descripción
+++-==============-============-============-=================================
ii libnss-mdns:am 0.10-7 amd64 NSS module for Multicast DNS name
ii libnss-mdns:i3 0.10-7 i386 NSS module for Multicast DNS name
ii libnss3:amd64 2:3.28.4-0ub amd64 Network Security Service librarie
ii libnss3:i386 2:3.28.4-0ub i386 Network Security Service librarie
ii libnss3-1d:amd 2:3.28.4-0ub amd64 Network Security Service librarie
ii libnss3-1d:i38 2:3.28.4-0ub i386 Network Security Service librarie
ii libnss3-nssdb 2:3.28.4-0ub all Network Security Security librari
ii libnss3-tools 2:3.28.4-0ub amd64 Network Security Service tools

Creo que tuve que instalar librerías de 32bits para un programa de robótica, no recuerdo bien si finalmente fueron todas o solo las necesarias...

Gracias de antemano

@int-0
Copy link

int-0 commented Apr 11, 2020

Pues de libnss3 de i386:

$ dpkg -S /usr/lib/i386-linux-gnu/nss/libsoftokn3.so
libnss3:i386: /usr/lib/i386-linux-gnu/nss/libsoftokn3.so

@alfem
Copy link

alfem commented Apr 12, 2020

Pues de libnss3 de i386:

$ dpkg -S /usr/lib/i386-linux-gnu/nss/libsoftokn3.so
libnss3:i386: /usr/lib/i386-linux-gnu/nss/libsoftokn3.so

Y has instalado tú ese paquete? Puedes desinstalarlo?

@edearmicas
Copy link

Hola.
Después de devanarme los sesos y mesarme los cabellos, viendo las diferentes propuestas de solución más arriba propuestas, les cuento cuál ha sido la mía. Por si es el caso en que se puedan encontrar.
Por supuesto, después de verificar versión de java, instalación correcta del certificado de autofirma, etc., seguía teniendo el problema, "no encuentro certificados válidos". ¿Cuá l era el problema? Que tenía definido más de un perfil en Firefox. Borré los no necesarios y todo ha ido como la seda.
Un saludo

@isabelma
Copy link

isabelma commented Oct 13, 2020

Hola,
a mi me funciona bien el eDNI en firefox, veo que con la app android y la app de linux eDNIremote conecto y pongo la password y en la parte de configuracion -->privacidad--> dispositivos de seguridad me aparece la sesión iniciada con el DNI 3.0
Si voy a los certificados, veo mis certificados de eDNI pero al ser desde dispositivo no los puedo exportar (que al ser desde tarjeta eDNI tiene sentido).
Desde una sede electronica me pide firmar un documento, como tengo instalado AutoFirma_1.6.5 en Ubuntu 20.04.1 LTS se me abre la aplicación pero no me encuentra los certificados, ni aunque recargue ni aunque intente cargar el fichero que está configurado en firefox como dispositivo seguro: /usr/local/lib/libdnieremotepkcs11.so , le pongo la misma password con versión de java y me dice que Error, que no puede cargar el certificado.
$ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)
En Firefox no tengo ningún perfil. ¿Qué debo hacer?
Gracias. Un saludo

$ AutoFirma
oct 13, 2020 9:15:56 PM es.gob.afirma.standalone.ProxyUtil clearJavaProxy
INFORMACIÓN: No se usara Proxy para las conexiones de red
oct 13, 2020 9:15:56 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: No se buscaran nuevas versiones de la aplicacion
oct 13, 2020 9:15:56 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.4.0-48-generic
Version de Java: 1.8.0_265
Arquitectura del JRE: 64
Java Vendor: Private Build
Localizacion por defecto: es_ES
Tamano actual en memoria: 240MB
Tamano maximo de memoria: 3536MB
Memoria actualmente libre: 178MB
oct 13, 2020 9:15:56 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.
oct 13, 2020 9:15:56 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Se intenta una precarga temprana de NSS
oct 13, 2020 9:15:56 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/rs2tw10f.default' certPrefix='' keyPrefix='' flags='readOnly'"
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFORMACIÓN: Proveedor PKCS#11 para NSS anadido: SunPKCS11-NSSCrypto-AFirma
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers
INFORMACIÓN: No se ha encontrado un DNIe: java.security.ProviderException: No se ha podido inicializar el proveedor de DNIe: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se han podido listar los lectores del sistema: javax.smartcardio.CardException: list() failed: javax.smartcardio.CardException: list() failed
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: Tarjeta FNMT-RCM CERES 4.30 o superior
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers
INFORMACIÓN: No se ha encontrado una tarjeta CERES 4.30 o superior: java.security.ProviderException: No se ha podido inicializar el proveedor de Ceres 4.30 y superior: es.gob.jmulticard.apdu.connection.NoReadersFoundException: No se han podido listar los lectores del sistema: javax.smartcardio.CardException: list() failed: javax.smartcardio.CardException: list() failed
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: Tarjeta FNMT-RCM CERES
oct 13, 2020 9:15:57 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.apdu.connection.NoReadersFoundException: No se han podido listar los lectores del sistema: javax.smartcardio.CardException: list() failed: javax.smartcardio.CardException: list() failed
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules
INFORMACIÓN: Se incluiran los modulos nativos de DNIe/CERES si se encuentran configurados
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities getMozillaPKCS11Modules
INFORMACIÓN: Obtenidos los modulos externos de Mozilla desde 'pkcs11.txt'
oct 13, 2020 9:15:57 PM es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init
INFORMACIÓN: No se han encontrado modulos PKCS#11 externos instalados en Firefox
oct 13, 2020 9:15:57 PM es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager
INFORMACIÓN: Establecido KeyStoreManager: Gestor de almacenes de claves Mozilla / Firefox (unificado) con nombre Mozilla / Firefox (unificado)
oct 13, 2020 9:15:57 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Cargando plugins
oct 13, 2020 9:15:57 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Iniciando entorno grafico
oct 13, 2020 9:15:57 PM es.gob.afirma.standalone.SimpleAfirma initialize
INFORMACIÓN: No se ha podido obtener la lista de lectores de tarjetas del sistema: javax.smartcardio.CardException: list() failed
oct 13, 2020 9:15:57 PM es.gob.afirma.standalone.ui.SignPanel$UpperPanel createUI
ADVERTENCIA: No ha sido posible obtener la lista de lectores de tarjetas del sistema: javax.smartcardio.CardException: list() failed
oct 13, 2020 9:15:57 PM es.gob.afirma.standalone.SimpleAfirma loadDefaultKeyStore
INFORMACIÓN: Se omite la carga concurrente de almacen por haberse hecho una precarga previa
oct 13, 2020 9:25:29 PM es.gob.afirma.ui.core.jse.certificateselection.UtilActions doOpen
ADVERTENCIA: No se ha podido cargar el almacen de certificados seleccionado: java.io.IOException: toDerInputStream rejects tag type 127

@eboukamza
Copy link

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

@bard
Copy link

bard commented Dec 29, 2020

Ayudé alguien con este error, y lo siguiente es lo que funcionó.

Sistema: Ubuntu 20.10, Firefox 84.

Requisito previo: certificado instalado en Firefox.

  1. Instalar Java 8 con sudo apt install openjdk-8-jre, y asegurarse que sea la versión usata por defecto con sudo update-alternatives --config java
  2. Instalar otra dependencia con sudo apt install libnss3-tools
  3. Descargar Autofirma para Linux desde https://firmaelectronica.gob.es/Home/Descargas.html, extraer el contenido, y instalar el paquete .deb
  4. En Firefox, ir a menu principal → PreferenciasPrivacidad & SeguridadCertificadosVer certificadosSus certificados → seleccionar el certificado FNMT → Hacer copia y guardar el certificado en el disco
  5. Visitar https://sede.carm.es/cryptoApplet/ayuda/probarautofirma.html y hacer clic en Firmar
  6. Cuando aparezca la ventana de Autofirma con el mensaje que no se pudo encontrar un certificado, hacer clic en el icono "↑" (el segundo arriba a la derecha)
  7. Seleccionar el archivo guardado en el paso 4

Lo que no fue necesario fue modificar ~/.pki o crear enlaces simbólicos a archivos del perfíl de Firefox. La llave fue el comentario de @ghost en #16 (comment).

La raíz del problema el proceso de instalación del paquete de Autofirma que, a parte modificar la sesión de usuario (primera vez que veo eso en 19 años de usar distribuciones basadas en Debian), espera encontrar unas condiciones que no son seguras ni, actualmente, probables: Java 8 y un perfíl único de Firefox (aún solo actualizarlo puede producir otro perfíl).

@zennepiet
Copy link

zennepiet commented Dec 29, 2020

Buenas, después de mil años intentando firmar, sin éxito, mediante certificado digital, acabo de conseguirlo con el DNIe (compré un lector barato en aliexpress). Estoy en Debian 10 y usando openjdk versión "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing). Señalar que con el enlace de @bard (Visitar https://sede.carm.es/cryptoApplet/ayuda/probarautofirma.html y hacer clic en Firmar) no me funcionó, sí desde " https://valide.redsara.es/valide/firmar/ejecutar.html " http://pix.toile-libre.org/upload/original/1609256488.png . Sigo investigando, un saludo.

@Akronix
Copy link

Akronix commented Apr 20, 2021

Buenas.

Yo he conseguido firmar cambiando el jdk que estaba usandose (java 9) al de java 8, mediante el comando que @bard comentó anteriormente: sudo update-alternatives --config java. Ha bastado simplemente con cambiar al openjdk-8 y ya me ha funcionado la aplicación de AutoFirma.

Antes recibía el siguiente error:

> $ AutoFirma                                                        
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.
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f8c01887009, pid=8905, tid=8906
#
# JRE version: OpenJDK Runtime Environment (9.0) (build 9-internal+0-2016-04-14-195246.buildd.src)
# Java VM: OpenJDK 64-Bit Server VM (9-internal+0-2016-04-14-195246.buildd.src, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libjava.so+0x1d009]  JNU_GetEnv+0x19
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /home/akronix/core.8905)
#
# An error report file with more information is saved as:
# /home/akronix/hs_err_pid8905.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
/usr/bin/AutoFirma: line 2:  8905 Aborted                 (core dumped) java -jar /usr/lib/AutoFirma/AutoFirma.jar $*

Estoy en Ubuntu 16.04.

@didgewind
Copy link

Hola, yo tengo una instalación nueva de LUbuntu 20.04. Al instalar Autofirma 1.6.5 me daba la excepción unrecognized algorithm name: PBEWithSHA1AndDESede por un problema de la versión openjdk-8u292. Instalé la versión 1.8.0_311 de oracle y se instaló sin problemas. Pero al ejecutar me aparecía la excepción Error obteniendo el proveedor NSS: java.lang.reflect.InvocationTargetException, que solucioné eliminando los profiles de Firefox excepto el mío. También añadí los enlaces simbólicos que comentáis https://github.com/gecos-team/java-nss-fix/blob/trusty/gcs/install_scripts/pos/create_symlinks, pero hasta que no eliminé los perfiles de Firefox no me funcionó realmente (y me desaparecieron todos los errores).

Cuando digo que ahora me funciona, en realidad es de forma parcial. Sólo funciona bien si arranco desde consola, si lo hago desde el .Desktop se bloquea mientras firma documentos, y desde el navegador parece que no consigue conectar con el applet de AutoFirma.

@lbenitezm
Copy link

lbenitezm commented May 14, 2022

Hola,
Estoy encontrándome con el problema que describís en este hilo (gracias a todos !!) Pero soy incapaz de dar con el arreglo. El problema es:

La instalación que tengo es:

  • Linux Mint 20.1 Ulyssa - 64 bits - 5.4.0-73-generic
  • Java: java-8-openjdk-amd64
  • Autofirma 1.7.1
  • Firefox 100 - 64 bits (1 usuario. Certificados de DNIe de Autenticación y Firma. Autoridad: Autofirma ROOT

¿Alguna pista de qué puede estar pasando en el Firefox que me esté bloqueando o no alcanzando a la aplicación de Autofirma? He leído muchos foros pero no consigo resolver el problema y me da la impresión que en este hilo es donde más habéis tratado con él. GRACIAS !! Luis

Aporto información adicional de la respuesta de Autofirma al arrancar y al restaurar la aplicación. Disculpad el tamaño ...

Aporto también lo que me da el Autofirma cuando lo arranco con la interfaz gráfica:

luis@olimpo:~$ /usr/bin/AutoFirma 
may 14, 2022 10:59:28 PM es.gob.afirma.standalone.ProxyUtil setProxySettings
INFORMACIÓN: No se usara proxy para las conexiones HTTP
may 14, 2022 10:59:28 PM es.gob.afirma.standalone.ProxyUtil setProxySettings
INFORMACIÓN: No se usara proxy para las conexiones HTTPS
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.
may 14, 2022 10:59:29 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFORMACIÓN: AutoFirma 1.7.1
Resolucion DPI de pantalla: 0
Sistema operativo: Linux
Version del SO: 5.4.0-73-generic
Version de Java: 1.8.0_312
Arquitectura del JRE: 64
Java Vendor: Private Build
Localizacion por defecto: es_ES
Tamano actual en memoria: 57MB
Tamano maximo de memoria: 852MB
Memoria actualmente libre: 43MB
may 14, 2022 10:59:29 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Apertura como herramienta de escritorio
may 14, 2022 10:59:29 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Se intenta una precarga temprana de NSS
may 14, 2022 10:59:29 PM es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: NSS
may 14, 2022 10:59:29 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilitiesUnix getNSSLibDirUnix
INFORMACIÓN: Se usara el NSS encontrado en '/usr/lib/x86_64-linux-gnu/nss'
may 14, 2022 10:59:29 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFORMACIÓN: Directorio de bibliotecas NSS: /usr/lib/x86_64-linux-gnu/nss
may 14, 2022 10:59:29 PM es.gob.afirma.keystores.mozilla.NSPreferences getActiveProfile
INFORMACIÓN: No se encontro el perfil activo de Mozilla
may 14, 2022 10:59:29 PM es.gob.afirma.keystores.mozilla.NSPreferences getFireFoxUserProfileDirectory
INFORMACIÓN: Se usara el ultimo perfil modificado de Mozilla: USERHOME/.mozilla/firefox/d0pahon1.default-release-1
may 14, 2022 10:59:29 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFORMACIÓN: Configuracion de NSS para SunPKCS11:
name=NSSCrypto-AFirma
library=/usr/lib/x86_64-linux-gnu/nss/libsoftokn3.so
attributes=compatibility
slot=2
showInfo=false
allowSingleThreadedModules=true
nssArgs="configdir='sql:/USERHOME/.mozilla/firefox/d0pahon1.default-release-1' certPrefix='' keyPrefix='' flags='readOnly'"
may 14, 2022 10:59:30 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFORMACIÓN: Proveedor PKCS#11 para NSS anadido: SunPKCS11-NSSCrypto-AFirma
may 14, 2022 10:59:30 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
may 14, 2022 10:59:30 PM es.gob.afirma.keystores.AOKeyStoreManagerHelperFullJava init
INFORMACIÓN: Cargando KeyStore 100% Java para DNIe y tarjetas FNMT-TIF
may 14, 2022 10:59:30 PM es.gob.jmulticard.card.dnie.DnieFactory getDnie
INFORMACIÓN: Detectado DNIe 3.0
may 14, 2022 10:59:30 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 10:59:30 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 10:59:30 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 10:59:30 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: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
may 14, 2022 10:59:31 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 10:59:31 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 10:59:31 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: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
may 14, 2022 10:59:31 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: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
may 14, 2022 10:59:31 PM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFORMACIÓN: El certificado de huella '479699E304381A8665CF69F36AF85FF3075A964E' se tomara unicamente del almacen preferente
may 14, 2022 10:59:31 PM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFORMACIÓN: El certificado de huella '5610B188FB61D3E8A8A0AE055C8457BC1C667FBE' se tomara unicamente del almacen preferente
may 14, 2022 10:59:31 PM es.gob.afirma.keystores.KeyStoreUtilities getDnieKeyStoreManager
INFORMACIÓN: El DNIe 100% Java ha podido inicializarse, se anadiran sus entradas
may 14, 2022 10:59:31 PM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFORMACIÓN: El certificado de huella '479699E304381A8665CF69F36AF85FF3075A964E' se tomara unicamente del almacen preferente
may 14, 2022 10:59:31 PM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFORMACIÓN: El certificado de huella '5610B188FB61D3E8A8A0AE055C8457BC1C667FBE' se tomara unicamente del almacen preferente
may 14, 2022 10:59:31 PM es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager
INFORMACIÓN: Establecido KeyStoreManager: Gestor de almacenes de claves NSS con nombre NSS
may 14, 2022 10:59:31 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Cargando plugins
may 14, 2022 10:59:31 PM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Iniciando entorno grafico

Y aquí incluyo la información de Autofirma cuando restauro la aplicación ....

may 14, 2022 11:09:02 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFORMACIÓN: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
may 14, 2022 11:09:02 PM es.gob.afirma.keystores.AOKeyStoreManagerHelperFullJava init
INFORMACIÓN: Cargando KeyStore 100% Java para DNIe y tarjetas FNMT-TIF
may 14, 2022 11:09:02 PM es.gob.jmulticard.card.dnie.DnieFactory getDnie
INFORMACIÓN: Detectado DNIe 3.0
may 14, 2022 11:09:02 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 11:09:02 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 11:09:02 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 11:09: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: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
may 14, 2022 11:09:02 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 11:09:02 PM es.gob.jmulticard.asn1.Tlv <init>
ADVERTENCIA: Se ha pedido crear un TLV vacio
may 14, 2022 11:09: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: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
may 14, 2022 11:09:03 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: Codigo de retorno: Parametro(s) incorrecto(s) P1-P2 (6B00), APDU de origen: 00-B0-06-F0-DE
may 14, 2022 11:09:03 PM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFORMACIÓN: El certificado de huella '479699E304381A8665CF69F36AF85FF3075A964E' se tomara unicamente del almacen preferente
may 14, 2022 11:09:03 PM es.gob.afirma.keystores.AggregatedKeyStoreManager addKeyStoreManager
INFORMACIÓN: El certificado de huella '5610B188FB61D3E8A8A0AE055C8457BC1C667FBE' se tomara unicamente del almacen preferente
may 14, 2022 11:09:03 PM es.gob.afirma.standalone.SimpleAfirma setKeyStoreManager
INFORMACIÓN: Establecido KeyStoreManager: Gestor de almacenes de claves DNIe y tarjetas FNMT-TIF con nombre DNIe y tarjetas FNMT-TIF
may 14, 2022 11:09:16 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux restore
INFORMACIÓN: Directorio de trabajo: /home/luis/.afirma/AutoFirma
may 14, 2022 11:09:16 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
id -u 
may 14, 2022 11:09:16 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux restoreSslCertificates
INFORMACIÓN: Se va a instalar el certificado CA raiz en Google Chrome
may 14, 2022 11:09:16 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
/bin/bash -c ps -aux 
may 14, 2022 11:09:20 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
/bin/bash -c ps -aux 
may 14, 2022 11:09:38 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
/bin/bash -c ps -aux 
may 14, 2022 11:09:38 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigFirefox execCommand
INFORMACIÓN: Se ejecutara el siguiente comando:
[/home/luis/.afirma/AutoFirma/uninstallRestore-824729567.sh]
may 14, 2022 11:09:39 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigFirefox execCommand
INFORMACIÓN: Se ejecutara el siguiente comando:
[/home/luis/.afirma/AutoFirma/installRestore--1868963548.sh]
may 14, 2022 11:09:39 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux restoreSslCertificates
INFORMACIÓN: Se va a instalar el certificado CA raiz en Mozilla Firefox
may 14, 2022 11:09:39 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
/bin/bash -c ps -aux 
may 14, 2022 11:09:39 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigFirefox uninstallRootCAMozillaKeyStore
ADVERTENCIA: No se pudo desinstalar el certificado SSL raiz del almacen de Mozilla Firefox: java.lang.NullPointerException
may 14, 2022 11:09:39 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigFirefox execCommand
INFORMACIÓN: Se ejecutara el siguiente comando:
[/home/luis/.afirma/AutoFirma/uninstallRestore--1028238037.sh]
may 14, 2022 11:09:41 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigFirefox execCommand
INFORMACIÓN: Se ejecutara el siguiente comando:
[/home/luis/.afirma/AutoFirma/installRestore-1184432903.sh]
may 14, 2022 11:09:42 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
chmod 755 /home/luis/.afirma/AutoFirma/restoreprotocol.sh 
may 14, 2022 11:09:42 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
pkexec /home/luis/.afirma/AutoFirma/restoreprotocol.sh 
may 14, 2022 11:09:58 PM es.gob.afirma.standalone.ui.restoreconfig.RestoreConfigLinux executeProcess
INFORMACIÓN: Ejecutamos el comando:
rm /home/luis/.afirma/AutoFirma/restoreprotocol.sh 

@alfem
Copy link

alfem commented May 16, 2022

¿Alguna pista de qué puede estar pasando en el Firefox que me esté bloqueando o no alcanzando a la aplicación de Autofirma?

Prueba a lanzar este comando:

xdg-mime query default x-scheme-handler/afirma

También sería interesante ver la salida de Firefox cuando intentas acceder a Valide para realizar alguna operación.

@lbenitezm
Copy link

lbenitezm commented May 16, 2022

¿Alguna pista de qué puede estar pasando en el Firefox que me esté bloqueando o no alcanzando a la aplicación de Autofirma?

Prueba a lanzar este comando:

xdg-mime query default x-scheme-handler/afirma

También sería interesante ver la salida de Firefox cuando intentas acceder a Valide para realizar alguna operación.

Gracias Alfonso ( @alfem ), la salida del comando es la siguiente ...

luis@olimpo:~$ xdg-mime query default x-scheme-handler/afirma
**afirma.desktop**

El fichero se encuentra aqui:

luis@olimpo:~/.local/share/applications$ ls -l /usr/share/applications/afirma.desktop 
-rwxrwxr-x 1 root root 302 feb  2  2017 /usr/share/applications/afirma.desktop

And afirma.desktop contains:

[Desktop Entry]
Encoding=UTF-8
Name=AutoFirma
Comment=Cliente @firma
Exec=**/usr/bin/AutoFirma** %u
Icon=/usr/lib/AutoFirma/AutoFirma.png
MimeType=x-scheme-handler/afirma;
Terminal=false
Type=Application
Categories=GNOME;Application;Office
StartupNotify=true
StartupWMClass=autofirma
Name[es_ES]=AutoFirma

And the executable /usr/bin/AutoFirma is here:

luis@olimpo:~/.local/share/applications$ ls -l /usr/bin/AutoFirma
-rwxrwxr-x 1 root root 98 may 31  2021 /usr/bin/AutoFirma

Parece ok, no?

Respecto a seguir la salida de firefox , ¿me podrías indicar algún tipo de comando / fichero / herramienta donde pudiera encontrar la salida/problemas que dieran alguna pista. Disculpa, no estoy familiarizado con Firefox ni con herramientas web.

Gracias, Luis

@alfem
Copy link

alfem commented May 16, 2022

luis@olimpo:~$ xdg-mime query default x-scheme-handler/afirma
afirma.desktop

Sí, parece ok.

Respecto a seguir la salida de firefox , me podrías indicar algún tipo de comando o fichero donde pudiera encontrar la salida/problemas que dieran alguna pista. Disculpa, no estoy familiarizado con Firefox ni con herramientas web.

Sólo tienes que lanzar firefox desde la línea de comandos, igual que has hecho con Autofirma. Después navegas a la web de valide, y trata de hacer algo con la firma. Verás que en el terminal donde lanzaste Firefox hay un montón de lineas de depuración, que a veces dan pistas.

@lbenitezm
Copy link

luis@olimpo:~$ xdg-mime query default x-scheme-handler/afirma
afirma.desktop

Sí, parece ok.

Respecto a seguir la salida de firefox , me podrías indicar algún tipo de comando o fichero donde pudiera encontrar la salida/problemas que dieran alguna pista. Disculpa, no estoy familiarizado con Firefox ni con herramientas web.

Sólo tienes que lanzar firefox desde la línea de comandos, igual que has hecho con Autofirma. Después navegas a la web de valide, y trata de hacer algo con la firma. Verás que en el terminal donde lanzaste Firefox hay un montón de lineas de depuración, que a veces dan pistas.

Gracias @alfem

Esto es lo que saca el Firefox durante el fallo de conexión con AutoFirma.

Por la pantalla de la web dice: java.util.concurrent.TimeoutException: No se pudo contactar con AutoFirma

En la consola desde la que he lanzado Firefox:


luis@olimpo:~$ firefox
may 16, 2022 11:09:44 AM es.gob.afirma.standalone.ProxyUtil setProxySettings
INFORMACIÓN: No se usara proxy para las conexiones HTTP
may 16, 2022 11:09:44 AM es.gob.afirma.standalone.ProxyUtil setProxySettings
INFORMACIÓN: No se usara proxy para las conexiones HTTPS
may 16, 2022 11:09:44 AM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFORMACIÓN: AutoFirma 1.7.1
Resolucion DPI de pantalla: 0
Sistema operativo: Linux
Version del SO: 5.4.0-73-generic
Version de Java: 1.8.0_312
Arquitectura del JRE: 64
Java Vendor: Private Build
Localizacion por defecto: es_ES
Tamano actual en memoria: 57MB
Tamano maximo de memoria: 852MB
Memoria actualmente libre: 43MB
may 16, 2022 11:09:44 AM es.gob.afirma.standalone.SimpleAfirma main
INFORMACIÓN: Invocacion por protocolo con URL:
afirma://websocket?v=3&idsession=wxWqKf0VsoKJue94KFKr
may 16, 2022 11:09:44 AM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher launch
INFORMACIÓN: Se inicia el modo de comunicacion por websockets: afirma://websocket?v=3&idsession=wxWqKf0VsoKJue94KFKr
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.
may 16, 2022 11:09:44 AM es.gob.afirma.standalone.protocol.SecureSocketUtils getSecureSSLContext
INFORMACIÓN: Se utilizara el siguiente almacen para establecer el socket SSL: /usr/lib/AutoFirma/autofirma.pfx
may 16, 2022 11:10:45 AM es.gob.afirma.standalone.protocol.AfirmaWebSocketServer lambda$startService$0
ADVERTENCIA: Se ha caducado la conexion. Se deja de escuchar en el puerto..


He instalado la librería libslf4j-java , la instalación parece OK, pero en resultado sigue siendo el mismo desafortunadamente que arriba.


luis@olimpo:~$ sudo apt-get install libslf4j-java
[sudo] contraseña para luis:            
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Paquetes sugeridos:
  libcommons-logging-java liblog4j1.2-java
Se instalarán los siguientes paquetes NUEVOS:
  libslf4j-java
0 actualizados, 1 nuevos se instalarán, 0 para eliminar y 509 no actualizados.
Se necesita descargar 141 kB de archivos.
Se utilizarán 289 kB de espacio de disco adicional después de esta operación.
Des:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libslf4j-java all 1.7.25-3 [141 kB]
Descargados 141 kB en 0s (625 kB/s)
Seleccionando el paquete libslf4j-java previamente no seleccionado.
(Leyendo la base de datos ... 395595 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../libslf4j-java_1.7.25-3_all.deb ...
Desempaquetando libslf4j-java (1.7.25-3) ...
Configurando libslf4j-java (1.7.25-3) ..


 ¿No se si proporciona alguna información?

@alfem
Copy link

alfem commented May 16, 2022

¿No se si proporciona alguna información?

De momento todo está ok. La librería libslf4j-java no hace falta instalarla.

Por aclarar lo que pasa, te cuento un poco por encima cómo funciona esto:

Al tratar de firmar con Firefox, éste llama a una url de tipo "afirma" que tiene este formato: afirma://websocket?v=3&idsession=wxWqKf0VsoKJue94KFKr

Este tipo de url hace que se lance el programa Autofirma en background, y que se quede esperando un tiempo a que Firefox le pase lo que tiene que firmar.

En tu caso, o bien AutoFirma no se está lanzando, o bien no pueden comunicarse porque no pueden establecer un canal seguro.

Para comprobar lo primero, puedes hacer esto:

  • Lanza Firefox
  • Abre un terminal
  • Ve a redsara y trata de firmar
  • Rápidamente, en el terminal escribes:
    ps -ef | grep AutoFirma
    Si se ha lanzado AutoFirma, verás un par de líneas parecidas a éstas:
alfem      49494       1  0 13:07 ?        00:00:00 /bin/bash /usr/bin/AutoFirmaJA afirma://service?ports=58543,55017,61922&v=1&idsession=MRlDQc2PpfdVlgEdKCC0
alfem      49497   49494 25 13:07 ?        00:00:07 java -jar /usr/lib/AutoFirmaJA/AutoFirmaJA.jar afirma://service?ports=58543,55017,61922&v=1&idsession=MRlDQc2PpfdVlgEdKC

Si es así, entonces sólo falta ver qué le pasa al canal seguro. ¿Tienes más de un perfil en Firefox?

@lbenitezm
Copy link

  • ps -ef | grep AutoFirma

Hola @alfem Alfonso,

He hecho la prueba que me has dicho. Durante todo el proceso con el grep obtengo la misma respuesta y se mantiene incluso después de recibir el error.

Esto es lo que responde el terminal ...

[luis       14599   14077  0 13:41 pts/1    00:00:00 grep --color=auto AutoFirma
luis@olimpo:~$ 
luis@olimpo:~$ 
luis@olimpo:~$ 
luis@olimpo:~$ 
luis@olimpo:~$ ps -ef | grep AutoFirma
luis       14546    1375  0 13:40 pts/0    00:00:00 /bin/bash /usr/bin/AutoFirma afirma://websocket?v=3&idsession=WytIPQtEN1K4B8u6TAIz
luis       14549   14546 14 13:40 pts/0    00:00:05 java -Djdk.tls.maxHandshakeMessageSize=50000 -jar /usr/lib/AutoFirma/AutoFirma.jar afirma://websocket?v=3&idsession=WytIPQtEN1K4B8u6TAIz
luis       14609   14077  0 13:41 pts/1    00:00:00 grep --color=auto AutoFirma](url)

Asi que parece que lanza (o trata de lanzar) el Autofirma pero la comunicación no se establece bien y termina en un

java.util.concurrent.TimeoutException: No se pudo contactar con AutoFirma

luis 14599 14077 0 13:41 pts/1 00:00:00 grep --color=auto AutoFirma
luis@olimpo:$
luis@olimpo:
$
luis@olimpo:$
luis@olimpo:
$
luis@olimpo:~$ ps -ef | grep AutoFirma
luis 14546 1375 0 13:40 pts/0 00:00:00 /bin/bash /usr/bin/AutoFirma afirma://websocket?v=3&idsession=WytIPQtEN1K4B8u6TAIz
luis 14549 14546 14 13:40 pts/0 00:00:05 java -Djdk.tls.maxHandshakeMessageSize=50000 -jar /usr/lib/AutoFirma/AutoFirma.jar afirma://websocket?v=3&idsession=WytIPQtEN1K4B8u6TAIz
luis 14609 14077 0 13:41 pts/1 00:00:00 grep --color=auto AutoFirma

en el navegador

¿No?

Gracias

@alfem
Copy link

alfem commented May 16, 2022

Asi que parece que lanza (o trata de lanzar) el Autofirma pero la comunicación no se establece bien y termina en un

Así que parece que aunque Firefox lanza el AutoFirma correctamente, no se comunican. Normalmente es porque el certificado para cifrar esa comunicación no coincide en ambos extremos. Pasa cuando se instala y desinstala AutoFirma varias veces, o porque tienes más de un perfil en Firefox.

Mira en Firefox->Ajustes->Privacidad y Seguridad->Certificados->Ver Certificados.

Selecciona "Autoridades" y busca a ver si tienes el de Autofirma ROOT LOCAL

imagen

Ese es el que usa Firefox para hablar con el Autofirma en background. Si le das doble clic, podrás ver la fecha en que se creó. Debería coincidir con la fecha en que instalaste AutoFirma.

@lbenitezm
Copy link

Asi que parece que lanza (o trata de lanzar) el Autofirma pero la comunicación no se establece bien y termina en un

Así que parece que aunque Firefox lanza el AutoFirma correctamente, no se comunican. Normalmente es porque el certificado para cifrar esa comunicación no coincide en ambos extremos. Pasa cuando se instala y desinstala AutoFirma varias veces, o porque tienes más de un perfil en Firefox.

Mira en Firefox->Ajustes->Privacidad y Seguridad->Certificados->Ver Certificados.

Selecciona "Autoridades" y busca a ver si tienes el de Autofirma ROOT LOCAL

imagen

Ese es el que usa Firefox para hablar con el Autofirma en background. Si le das doble clic, podrás ver la fecha en que se creó. Debería coincidir con la fecha en que instalaste AutoFirma.

Hola @alfem Alfonso,

He confirmado dos cosas:

  1. Tengo un solo perfil en firefox: default-release-1
  2. Como dices la fecha de la Autoridad: Autofirma ROOT Local coincide con la fecha de instalación de la aplicación de Autofirma. He borrado la autoridad y la aplicación. He vuelto ha instalar la aplicación, he comprobado que la Autoridad se regenera con la fecha de instalación de hoy. Hago de nuevo la comprobación y el mismo resultado :(((

image

@alfem
Copy link

alfem commented May 18, 2022

He confirmado dos cosas:

1. Tengo un solo perfil en firefox: **default-release-1**

2. Como dices la fecha de la Autoridad: **Autofirma ROOT Local** coincide con la fecha de instalación de la aplicación de Autofirma. He borrado la autoridad y la aplicación. He vuelto ha instalar la aplicación, he comprobado que la Autoridad se regenera con la fecha de instalación de hoy. Hago de nuevo la comprobación y el mismo resultado :(((

Todo parece correcto. Sólo se me ocurre que sea porque usas Java8 y Autofirma 1.7 va con Java11.

@lbenitezm
Copy link

He confirmado dos cosas:

1. Tengo un solo perfil en firefox: **default-release-1**

2. Como dices la fecha de la Autoridad: **Autofirma ROOT Local** coincide con la fecha de instalación de la aplicación de Autofirma. He borrado la autoridad y la aplicación. He vuelto ha instalar la aplicación, he comprobado que la Autoridad se regenera con la fecha de instalación de hoy. Hago de nuevo la comprobación y el mismo resultado :(((

Todo parece correcto. Sólo se me ocurre que sea porque usas Java8 y Autofirma 1.7 va con Java11.

Hola Alfonso @alfem ,

Cuando utilizo el Java 11, me falla Autofirma 1.7.1 ... no se me abre ni siquiera la interfaz gráfica. Mira, esto es lo que me devuelve la terminal cuando cambio de Java:


luis@olimpo:~$ sudo update-alternatives --config java
[sudo] contraseña para luis:            
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 manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 1
update-alternatives: utilizando /usr/lib/jvm/java-11-openjdk-amd64/bin/java para proveer /usr/bin/java (java) en modo manual
luis@olimpo:~$ sudo update-alternatives --config java
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 manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección:

luis@olimpo:~$ /usr/bin/AutoFirma
**Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit
at java.desktop/java.awt.Color.<clinit>(Color.java:275)**
at es.gob.afirma.standalone.LookAndFeelManager.<clinit>(LookAndFeelManager.java:60)
at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:569)

Cuando vuelvo a Java 8, la interfaz gráfica me funciona, pero sigo con el problema de la interfaz con Firefox.
No se si te da alguna pista el tipo de error.

Gracias.

@alfem
Copy link

alfem commented May 18, 2022

Could not initialize class java.awt.Toolkit

¿Como instalaste el java11? ¿con openjdk-11-jre?

@lbenitezm
Copy link

Ho

Could not initialize class java.awt.Toolkit

¿Como instalaste el java11? ¿con openjdk-11-jre?

Francamente no lo recuerdo, creo que fue a través de la consola siguiendo algún tutorial. Lo que veo es que entrando en el gestor gráfico de aplicaciones no lo veo activado ....

image

Te da alguna pista? ¿Crees que debo de desinstalarlo e instalarlo de algún otro modo?
Gracias

@alfem
Copy link

alfem commented May 18, 2022

Te da alguna pista? ¿Crees que debo de desinstalarlo e instalarlo de algún otro modo?

Tienes instalado el paquete openjdk-11-jre-headless. Lo de "headless" significa que es para ejecutar programas java que no muestren ventanas o diálogos gráficos.

Agrega el primer paquete que te sale, el openjdk-11-jre, y así te debería funcionar Autofirma con java 11.

@lbenitezm
Copy link

Te da alguna pista? ¿Crees que debo de desinstalarlo e instalarlo de algún otro modo?

Tienes instalado el paquete openjdk-11-jre-headless. Lo de "headless" significa que es para ejecutar programas java que no muestren ventanas o diálogos gráficos.

Agrega el primer paquete que te sale, el openjdk-11-jre, y así te debería funcionar Autofirma con java 11.

Muchas gracias Alfonso @alfem !!!!

Problema solucionado !!! Instalé el paquete que me has indicado y el Autofirma 1.7.1 se ha abierto bien tanto desde la aplicación gráfica como desde la llamada desde Firefox.

Resumo la solución por si ayuda a otra persona:

  • Autofirma 1.7.1 necesita de Java 11 para poder interaccionar con Firefox.
  • Java 11 necesita de todos sus paquetes openjdk-11-jre, no solo openjdk-11-jre-headless -ese ha sido uno de mis problemas.
  • Con Java 11 instalado correctamente, Autofirma 1.7.1 y la ultima versión de Firefox 100 ... el certificado en DNIe electrónico funciona correctamente desde la aplicación de Autofirma, así como desde el navegador.

Linux Mint - Cinnamon

Muchas gracias por todo Alfonso por tu soporte (y paciencia).

Un saludo, Luis Benítez

@Daniel-CA
Copy link

#357 He probado todo lo que se comenta aquí pero no he conseguido saltar este error.

@bard
Copy link

bard commented Oct 11, 2023

Por si alguin todavía no lo conoce: https://github.com/alfem/FireFirma

Pone todo lo necesario, configurado y listo para usar, en un sólo fichero.

LucasFA added a commit to LucasFA/clienteafirma that referenced this issue Nov 4, 2023
Exige la existencia de alguna librería de Java >= 11 sin exigir
ninguna versión o proveedor particular.

En el issue ctt-gob-es#259 se nos motiva por qué no se exige ninguna dependencia
de Java para la instalación: hay usarios que no quieren instalarse
ninguna otra versión que la que ya tienen.

Esto provoca mucho quebraderos de cabeza para usuarios que se instalan
Autofirma sin leerse las instrucciones, acabando con instalaciones
rotas - no es intuitivo para el usuario instalarse las dependencias
manualmente.

Para conciliar esto utilizamos los virtual packages de
Debian: se supone que un paquete que da la funcionalidad
de un JRE 11 debería de declarar en la sección Provides: del paquete que
aporta java11-runtime.

Si no hay ningún paquete que ya provea al sistema de un runtime de Java
compatible con las versiones 11 o 17, se instala default-jre, versión >= 11.

Nótese que para que dpkg tenga conocimiento de esa instalación previa de
Java, debe de haberse instalado también con dpkg o apt. Según de cómo de
acomodador se quiera ser a los usuarios con su instalación custom
de Java fuera de dpkg, esto podría ser un breaking change para ellos. En
mi opinión, este es un uso menor, viendo la cantidad de comentarios de
la comunidad al respecto, como veremos.

Así se resuelven muchos problemas de instalación:
- un usuario en ctt-gob-es#16 estuvo días con problemas por no tener Java (no el
  posteador)
- resolves ctt-gob-es#244, donde varios usuarios vieron su problema resuelto
  gracias a una aclaración indicando su problema con las dependencias.
- closes ctt-gob-es#258, que simplemente pregunta desconcertado.
- En ctt-gob-es#263, al menos un usuario reporta haber solucionado su problema
  instalando Java de Oracle.
- En ctt-gob-es#250, al final del hilo, un usuario reporta que el funcionamiento o
  no de Autofirma varía de versión a versión.
- close ctt-gob-es#259, el issue mencionado al principio de este commit message.
- tenemos un tutorial/explicación y todo en ctt-gob-es#302

También está la PR ctt-gob-es#268, que pide aclarar la instalación para Fedora,
que sufre de exactamente lo mismo. De hecho:
- ctt-gob-es#230 y ctt-gob-es#355 parecen ser tambien problemas de tener instalado java
  headless (el log errores menciona java.awt, abstract window toolkit).
  Otros 2 usuarios reportaban errores similares en ctt-gob-es#172, y otro usuario
  en ctt-gob-es#168 sabe que tiene headless pero no que necesita las versión no
  headless.

Referencias:
https://wiki.debian.org/Java - sección Understanding Java Virtual
packages names.
La misma idea de usar virtual package names surge en
varias preguntas de StackOverflow:
- Depender de Java pero no de ninguna implementación particular https://unix.stackexchange.com/questions/291783/can-i-indicate-that-a-deb-package-depends-on-java-but-not-specify-what-impleme
- Depender de Java pero sin ser estricto en versiones
  https://unix.stackexchange.com/questions/550060/set-minimal-jre-version-to-deb-package-dependency
  y https://stackoverflow.com/questions/36181613/how-to-configure-java-7-or-java-8-dependency-in-debian-deb-package
LucasFA added a commit to LucasFA/clienteafirma that referenced this issue Nov 4, 2023
Exige la existencia de alguna librería de Java >= 11 sin exigir
ninguna versión o proveedor particular.

En el issue ctt-gob-es#259 se nos motiva por qué no se exige ninguna dependencia
de Java para la instalación: hay usarios que no quieren instalarse
ninguna otra versión que la que ya tienen.

Esto provoca mucho quebraderos de cabeza para usuarios que se instalan
Autofirma sin leerse las instrucciones, acabando con instalaciones
rotas - no es intuitivo para el usuario instalarse las dependencias
manualmente.

Para conciliar esto utilizamos los virtual packages de
Debian: se supone que un paquete que da la funcionalidad
de un JRE 11 debería de declarar en la sección Provides: del paquete que
aporta java11-runtime.

Si no hay ningún paquete que ya provea al sistema de un runtime de Java
compatible con las versiones 11 o 17, se instala default-jre, versión >= 11.

Nótese que para que dpkg tenga conocimiento de esa instalación previa de
Java, debe de haberse instalado también con dpkg o apt. Según de cómo de
acomodador se quiera ser a los usuarios con su instalación custom
de Java fuera de dpkg, esto podría ser un breaking change para ellos. En
mi opinión, este es un uso menor, viendo la cantidad de comentarios de
la comunidad al respecto, como veremos.

Así se resuelven muchos problemas de instalación:
- un usuario en ctt-gob-es#16 estuvo días con problemas por no tener Java (no el
  posteador)
- resolves ctt-gob-es#244, donde varios usuarios vieron su problema resuelto
  gracias a una aclaración indicando su problema con las dependencias.
- closes ctt-gob-es#258, que simplemente pregunta desconcertado.
- En ctt-gob-es#263, al menos un usuario reporta haber solucionado su problema
  instalando Java de Oracle.
- En ctt-gob-es#250, al final del hilo, un usuario reporta que el funcionamiento o
  no de Autofirma varía de versión a versión.
- close ctt-gob-es#259, el issue mencionado al principio de este commit message.
- tenemos un tutorial/explicación y todo en ctt-gob-es#302

También está la PR ctt-gob-es#268, que pide aclarar la instalación para Fedora,
que sufre de exactamente lo mismo. De hecho:
- ctt-gob-es#230 y ctt-gob-es#355 parecen ser tambien problemas de tener instalado java
  headless (el log errores menciona java.awt, abstract window toolkit).
  Otros 2 usuarios reportaban errores similares en ctt-gob-es#172, y otro usuario
  en ctt-gob-es#168 sabe que tiene headless pero no que necesita las versión no
  headless.

Referencias:
https://wiki.debian.org/Java - sección Understanding Java Virtual
packages names.
La misma idea de usar virtual package names surge en
varias preguntas de StackOverflow:
- Depender de Java pero no de ninguna implementación particular https://unix.stackexchange.com/questions/291783/can-i-indicate-that-a-deb-package-depends-on-java-but-not-specify-what-impleme
- Depender de Java pero sin ser estricto en versiones
  https://unix.stackexchange.com/questions/550060/set-minimal-jre-version-to-deb-package-dependency
  y https://stackoverflow.com/questions/36181613/how-to-configure-java-7-or-java-8-dependency-in-debian-deb-package
LucasFA added a commit to LucasFA/clienteafirma that referenced this issue Nov 4, 2023
Exige la existencia de alguna librería de Java >= 11 sin exigir
ninguna versión o proveedor particular.

En el issue ctt-gob-es#259 se nos motiva por qué no se exige ninguna dependencia
de Java para la instalación: hay usarios que no quieren instalarse
ninguna otra versión que la que ya tienen.

Esto provoca mucho quebraderos de cabeza para usuarios que se instalan
Autofirma sin leerse las instrucciones, acabando con instalaciones
rotas - no es intuitivo para el usuario instalarse las dependencias
manualmente.

Para conciliar esto utilizamos los virtual packages de
Debian: se supone que un paquete que da la funcionalidad
de un JRE 11 debería de declarar en la sección Provides: del paquete que
aporta java11-runtime.

Si no hay ningún paquete que ya provea al sistema de un runtime de Java
compatible con las versiones 11 o 17, se instala default-jre, versión >= 11.

Nótese que para que dpkg tenga conocimiento de esa instalación previa de
Java, debe de haberse instalado también con dpkg o apt. Según de cómo de
acomodador se quiera ser a los usuarios con su instalación custom
de Java fuera de dpkg, esto podría ser un breaking change para ellos. En
mi opinión, este es un uso menor, viendo la cantidad de comentarios de
la comunidad al respecto, como veremos.

Así se resuelven muchos problemas de instalación:
- un usuario en ctt-gob-es#16 estuvo días con problemas por no tener Java (no el
  posteador)
- resolves ctt-gob-es#244, donde varios usuarios vieron su problema resuelto
  gracias a una aclaración indicando su problema con las dependencias.
- closes ctt-gob-es#258, que simplemente pregunta desconcertado.
- En ctt-gob-es#263, al menos un usuario reporta haber solucionado su problema
  instalando Java de Oracle.
- En ctt-gob-es#250, al final del hilo, un usuario reporta que el funcionamiento o
  no de Autofirma varía de versión a versión.
- close ctt-gob-es#259, el issue mencionado al principio de este commit message.
- tenemos un tutorial/explicación y todo en ctt-gob-es#302

También está la PR ctt-gob-es#268, que pide aclarar la instalación para Fedora,
que sufre de exactamente lo mismo. De hecho:
- ctt-gob-es#230 y ctt-gob-es#355 parecen ser tambien problemas de tener instalado java
  headless (el log errores menciona java.awt, abstract window toolkit).
  Otros 2 usuarios reportaban errores similares en ctt-gob-es#172, y otro usuario
  en ctt-gob-es#168 sabe que tiene headless pero no que necesita las versión no
  headless.

Referencias:
https://wiki.debian.org/Java - sección Understanding Java Virtual
packages names.
La misma idea de usar virtual package names surge en
varias preguntas de StackOverflow:
- Depender de Java pero no de ninguna implementación particular https://unix.stackexchange.com/questions/291783/can-i-indicate-that-a-deb-package-depends-on-java-but-not-specify-what-impleme
- Depender de Java pero sin ser estricto en versiones
  https://unix.stackexchange.com/questions/550060/set-minimal-jre-version-to-deb-package-dependency
  y https://stackoverflow.com/questions/36181613/how-to-configure-java-7-or-java-8-dependency-in-debian-deb-package
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests