ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
253 stars 119 forks source link

Linux error SAF_19 #16

Open vk496 opened 6 years ago

vk496 commented 6 years ago

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 commented 6 years ago

Hola Valentín,

¿Qué versión de Java usas?

El 10/2/2018 12:48 p. m., "Valentin" notifications@github.com escribió:

Buenas,

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

Cuando procedo a firmar, recibo el siguiente error:

[image: image] https://user-images.githubusercontent.com/5502443/36061792-cc1f5e54-0e5f-11e8-8020-3311c6534179.png

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

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ctt-gob-es/clienteafirma/issues/16, or mute the thread https://github.com/notifications/unsubscribe-auth/AFopALZFPik5kasNvbYWOKXuT51a3-Wcks5tTYH6gaJpZM4SA5vT .

vk496 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

Tienes instalado también el paquete ibnss3-tools ?

vk496 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

Otras cosillas que comprobar:

i-eperez commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@i-eperez Muchas gracias!

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

Salu2

alfem commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

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

davidjguru commented 6 years ago

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. https://github.com/ctt-gob-es/clienteafirma/issues/16#issuecomment-371744649

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

alfem commented 6 years ago

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 commented 6 years ago

Uf. Ya firmo con Firefox60ESR y Autofirma 1.6.1.

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

Eskorpio commented 6 years ago

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

alfem commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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

alfem commented 6 years ago

Yo quitaría las de i386, por si acaso.

Y después reinstalaría Autofirma para que agregue el certificado propio al navegador.

ijj517 commented 6 years ago

Efectivamente quitando las librerías de 32 bits funciona perfectamente¡¡¡

Muchas gracias.

AlfredoBB commented 6 years ago

En ubuntu 18 LTS hay que usar java-8-open, porque con la 11 no funciona. La app parece usar funciones de PKCS-certificado que han sido retiradas por Oracle(???). Suelta excepciones al arranque y no carga los certificados.

sudo update-alternatives --config java

currix commented 6 years ago

Hola, utilizo Firefox ESR 52.9.0 (64 bit) en un sistema Debian Stretch. Para usar la admón electrónica de mi universidad es preciso ejecutar el programa autofirma.jnlp. He instalado java (jre-8u181-linux-x64) y he hecho el link para el plugin en el navegador. También he definido que los archivos jnlp se abran con javaws. Todo parece funcionar hasta que aparece el error SAF_19 y al parecer el programa no encuentra ningún certificado válido. Mi certificado FNMT está definido para Firefox y no está caducado. He probado con la solución sugerida por i-eperez y el error persiste. La salida de la consola java es:

Java Web Start 11.181.2.13 amd64
Using JRE version 1.8.0_181-b13 Java HotSpot(TM) 64-Bit Server VM
User home directory = /home/curro
------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
0-5: set trace level to <n>
----------------------------------------------------
-----------
WARNING: the jnlp file is invalid and will be blocked in a future release.
Exception: org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 38; The reference to entity "id" must end with the ';' delimiter.
-----------
-----------
WARNING: the jnlp file is invalid and will be blocked in a future release.
Exception: org.xml.sax.SAXParseException; lineNumber: 20; columnNumber: 38; The reference to entity "id" must end with the ';' delimiter.
-----------
Missing Application-Name manifest attribute for: http://portafirmas.uhu.es/autofirma/AutoFirma_1.4.2.1.jar
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma main
INFO: Enrique Invocacion por protocolo con URL:
afirma://sign?op=sign&id=HB2kZbTHFuxmWWLBXiYp&key=22962958&stservlet=https%3A%2F%2Fportafirmas.uhu.es%2FAutofirmaJWS%2FStorageService&format=CAdES&algorithm=SHA1withRSA&dat=IA%3D%3D
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.LookAndFeelManager applyLookAndFeel
INFO: Establecido 'Look&Feel' Metal
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.AutoFirmaUtil getDPI
SEVERE: Error obteniendo DPI: java.io.IOException: Cannot run program "wmic": error=2, No such file or directory
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Resolucion DPI de pantalla: 0
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Sistema operativo: Linux
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Version del SO: 4.9.0-7-amd64
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Version de Java: 1.8.0_181
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Arquitectura del JRE: 64
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Java Vendor: Oracle Corporation
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Localizacion por defecto: en_US
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Tamano actual en memoria: 246MB
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Tamano maximo de memoria: 3538MB
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo
INFO: Memoria actualmente libre: 195MB
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.SimpleAfirma main
INFO: Invocacion por protocolo con URL:
afirma://sign?op=sign&id=HB2kZbTHFuxmWWLBXiYp&key=22962958&stservlet=https%3A%2F%2Fportafirmas.uhu.es%2FAutofirmaJWS%2FStorageService&format=CAdES&algorithm=SHA1withRSA&dat=IA%3D%3D
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher launch
INFO: Se invoca a la aplicacion para realizar una operacion de firma/multifirma
Sep 04, 2018 5:36:18 PM es.gob.afirma.core.misc.protocol.ProtocolInvocationUriParser parserUri
INFO: URI recibida: afirma://sign?op=sign&id=HB2kZbTHFuxmWWLBXiYp&key=22962958&stservlet=https%3A%2F%2Fportafirmas.uhu.es%2FAutofirmaJWS%2FStorageService&format=CAdES&algorithm=SHA1withRSA&dat=IA%3D%3D
Sep 04, 2018 5:36:18 PM es.gob.afirma.core.misc.http.DataDownloader downloadData
INFO: El contenido a obtener es Base64
Sep 04, 2018 5:36:18 PM es.gob.afirma.core.misc.http.DataDownloader downloadData
INFO: El contenido a obtener es Base64
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher launch
INFO: Se inicia la operacion de firma
Sep 04, 2018 5:36:18 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFO: Configuracion de NSS para SunPKCS11:
name=NSSCrypto-AFirma
library=/usr/lib/firefox-esr/libsoftokn3.so
attributes=compatibility
slot=2
showInfo=false
allowSingleThreadedModules=true
nssArgs="configdir='sql:/USERHOME/.pki/nssdb' certPrefix='' keyPrefix='' flags='readOnly'"
Sep 04, 2018 5:36:18 PM es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities loadNSS
INFO: Proveedor PKCS#11 para Firefox anadido: SunPKCS11-NSSCrypto-AFirma
Sep 04, 2018 5:36:18 PM es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager init
INFO: No se han encontrado modulos PKCS#11 externos instalados en Firefox
Sep 04, 2018 5:36:18 PM es.gob.afirma.keystores.AOKeyStoreManager init
INFO: Inicializamos el almacen de tipo: DNIe y tarjetas FNMT-TIF
Sep 04, 2018 5:36:18 PM es.gob.afirma.keystores.KeyStoreUtilities addPreferredKeyStoreManagers
WARNING: No se ha podido inicializar el controlador DNIe 100% Java: es.gob.afirma.keystores.AOKeystoreAlternativeException: Error al inicializar el modulo DNIe 100% Java: es.gob.afirma.keystores.AOKeyStoreManagerException: No se ha podido instanciar e instalar el proveedor 100% Java de Afirma para DNIe y tarjetas FNMT-TIF: java.lang.reflect.InvocationTargetException
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherSign processSign
INFO: Obtenido gestor de almacenes de claves: Gestor de almacenes de claves de tipo NSS con nombre NSS de clase NSS
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherSign processSign
INFO: Cargando dialogo de seleccion de certificados...
ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider apple.applescript.AppleScriptEngineFactory not found
ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider apple.applescript.AppleScriptEngineFactory not found
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.protocol.ServiceInvocationManager focusApplication
WARNING: Fallo cogiendo el foco en mac: java.lang.NullPointerException
Sep 04, 2018 5:36:18 PM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherSign processSign
SEVERE: 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
alfem commented 6 years ago

¿Debian en Mac? Posiblemente sea una combinacion poco probada. ¿Has visto el error de wmic? No se si es grave, pero parece que puede influir en la gestión de ventanas.

Por otro lado, parece que los certificados los busca en .pki/nssdb/
Podrias comprobar si ahí tienes cargado el tuyo, o si Firefox los está metiendo donde siempre (en .mozilla/firefox/tuperfil)

certutil -L -d sql:/home/TUUSUARIO/.pki/nssdb (si hay un fichero cert9,db)

currix commented 6 years ago

¿Debian en Mac? Posiblemente sea una combinacion poco probada. ¿Has visto el error de wmic? No se si es grave, pero parece que puede influir en la gestión de ventanas.

Por otro lado, parece que los certificados los busca en .pki/nssdb/ Podrias comprobar si ahí tienes cargado el tuyo, o si Firefox los está metiendo donde siempre (en .mozilla/firefox/tuperfil)

certutil -L -d sql:/home/TUUSUARIO/.pki/nssdb (si hay un fichero cert9,db)

Hola, mi sistema no es MAC. Es un laptop Dell. La salida del comando que comentas es:

$ certutil -L -d sql:/home/curro/.pki/nssdb

Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI

SocketAutoFirmaLocal CT,C,C

Puedo utilizar el programa Autofirma para firmar pdfs pero cuando trato de utilizar el navegador y la admon electrónica aparece el consabido error SAF 19.

ballfire commented 5 years ago

Ojito, en alguna release en el pasado autofirma se ha pasado a depender de librerías de 64bit.

Si tenéis en Linux instalado a la vez la versión de 32bits y de 64bits de libnss3 ( nombre de debian, concretamente) , por algún motivo el software intentará acceder al almacén de certificados con la librería de 32 bits aunque sea la versión de 64 bits y claro... no funcionará.

Solución: desinstalar libnss3:i386 (que probablemente tengáis instalada sólo para autofirma )

Selvato commented 5 years ago

Probé con todas las opciones y me funcionó la de @AlfredoBB : sudo update-alternatives --config java, muchas gracias a todos!!

jdelacueva commented 5 years ago

En mi caso, la solución de @AlfredoBB ha sido la clave para que funcione en un Ubuntu 18.10 64bits.

Autofirma no funciona con java 10 pero sí con java 8. Para solucionar el problema, explico a continuación de forma lo más elemental posible para los recién llegados a Linux los pasos que hay que seguir para resolverlo:

  1. Verificar cuál es la versión de java que está instalada.

    sudo update-alternatives --config java
    
  2. El mensaje que aparece será, según lo que se tenga instalado, algo así:

    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      1101      modo automático
    * 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      modo manual
    2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      modo manual
    
  3. Pulsar el número que corresponda para elegir java 8, en este caso el número 2 (pudiera ser otro número, según qué se tenga instalado).

  4. Si no aparece java 8 en la configuración, entonces hay que instalarlo:

    sudo apt-get install openjdk-8-jre
    
  5. Tras la instalación, volver a repetir 'sudo update-alternatives --config java' y elegir java 8 según indicado en los pasos anteriores 1 a 3.

[Edito: No obstante, ver el comentario de victorjss más abajo]

jjchico commented 5 years ago

A la fecha, con Ubuntu 18.04 y Firefox 64.0, funciona la solución de @AlfredoBB: usar openjdk-8 en vez de openjdk-11 (por defecto):

sudo update-alternatives --config java
victorjss commented 5 years ago

No es la mejor solución cambiar a Java 8 por defecto ya que afecta al resto de programas del sistema. Creo que lo mejor es cambiar la asociación de versión de Java solamente para las URL "afirma://..." (instrucciones para Ubuntu): 1) Instalamos Autofirma 2) Instalamos OpenJDK 8 (pero NO la hacemos la opción por defecto) 3) Modificamos (como root) el fichero "/usr/share/applications/afirma.desktop", sustituyendo la línea (la comentamos con '#')

Exec=/usr/bin/AutoFirma %u

por

Exec=/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/lib/AutoFirma/AutoFirma.jar %u

Reiniciando Firefox/Chrome debería funcionar AutoFirma con Java8, sin tener que cambiar la configuración por defecto de todo el S.Op. para que use una versión obsoleta de Java.

NOTA: para probar que la asociación con "afirma://" está bien hecha podemos lanzar:

xdg-open afirma://service?ports=60539,56638,49305

Saludos

El vie., 18 ene. 2019 a las 17:38, Jorge Juan-Chico (< notifications@github.com>) escribió:

A la fecha, con Ubuntu 18.04 y Firefox 64.0, funciona la solución de @AlfredoBB https://github.com/AlfredoBB: usar openjdk-8 en vez de openjdk-11 (por defecto):

sudo update-alternatives --config java

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ctt-gob-es/clienteafirma/issues/16#issuecomment-455628090, or mute the thread https://github.com/notifications/unsubscribe-auth/AMqeF22fIAG3LEKEdCIhmyk7KoK3Q4Yeks5vEgaNgaJpZM4SA5vT .

carlosroca2 commented 5 years ago

En ubuntu 18 LTS hay que usar java-8-open, porque con la 11 no funciona. La app parece usar funciones de PKCS-certificado que han sido retiradas por Oracle(???). Suelta excepciones al arranque y no carga los certificados.

sudo update-alternatives --config java

He tenido el mismo problema, uso Ubuntu 18.04.2 con Java 10, y no se ha resuelto hasta hacer el cambio a java 8. Salida de java -version: "openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)"

Antes había probado con los enlaces simbolicos en .pki/bssdb y seguía con el mismo error.

alvarolmedo commented 5 years ago

He tenido que cambiar de java 11 a java 8 para hacerlo funcionar también:

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

gracias @AlfredoBB

alvarolmedo commented 5 years ago

La solución que propone @victorjss me parece más elegante, pero en mi caso no funciona:

aolmedo@guybrush:~$ grep Exec /usr/share/applications/afirma.desktop
Exec=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /usr/bin/AutoFirma %u
aolmedo@guybrush:~$ /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
aolmedo@guybrush:~$ xdg-open afirma://service?ports=60539,56638,49305
Error: Invalid or corrupt jarfile /usr/bin/AutoFirma
victorjss commented 5 years ago

Lo siento, falta el "AutoFirma.jar" en la sentencia:

Exec=/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar /usr/lib/AutoFirma/AutoFirma.jar %u

Saludos

El sáb., 30 mar. 2019 a las 10:33, Alvaro Olmedo Rodriguez (< notifications@github.com>) escribió:

La solución que propone @victorjss https://github.com/victorjss me parece más elegante, pero en mi caso no funciona:

aolmedo@guybrush:~$ grep Exec /usr/share/applications/afirma.desktop

Exec=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /usr/bin/AutoFirma %u

aolmedo@guybrush:~$ /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -version

openjdk version "1.8.0_191"

OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)

OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

aolmedo@guybrush:~$ xdg-open afirma://service?ports=60539,56638,49305

Error: Invalid or corrupt jarfile /usr/bin/AutoFirma

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ctt-gob-es/clienteafirma/issues/16#issuecomment-478232575, or mute the thread https://github.com/notifications/unsubscribe-auth/AMqeFx-f25BD7drv7ikcdzKQvpMXqAzdks5vbz2WgaJpZM4SA5vT .

alvarolmedo commented 5 years ago

Fallo mío, correcto, ahora funciona bien. Gracias @victorjss :+1:

Macafyc commented 5 years ago

Ojito, en alguna release en el pasado autofirma se ha pasado a depender de librerías de 64bit.

Si tenéis en Linux instalado a la vez la versión de 32bits y de 64bits de libnss3 ( nombre de debian, concretamente) , por algún motivo el software intentará acceder al almacén de certificados con la librería de 32 bits aunque sea la versión de 64 bits y claro... no funcionará.

Solución: desinstalar libnss3:i386 (que probablemente tengáis instalada sólo para autofirma )

Efectivamente ésta fue la solución para que funcionara tanto la aplicación de escritorio como la firma en página web (https://valide.redsara.es/valide/firmar/ejecutar.html permite la simulación de firma online para ver si funciona). Antes había probado la creación de enlaces a los archivos db en la carpeta .pki/nssdb sin éxito. Una vez eliminado libnss3:i386 borré a su vez los enlaces creados en .pki/nssdb y sigue funcionando.

La diferencia que he notado es que cuando no me funcionaba, la aplicación de escritorio se abría directamente y ahora antes de mostrarse la ventana solicita la clave del almacén de claves de Firefox. Lo mismo sucede dentro de Firefox: aunque tenga ya abierto el dispositivo de software mediante la contraseña maestra de Firefox, al realizar una firma se me vuelve a solicitar la contraseña.

Gracias por la ayuda.

Probado en Linux Mint 17.3 openJDK 1.8 AutoFirma 1.6.2

ssaavedra commented 5 years ago

Desafortunadamente, eliminar libnss3.i686 puede ser un inconveniente (y no siempre funcionará, véase #27, no es solo libnss3, sino también sqlite3 y otras). Que no exista software multilib instalado es un requisito, en mi opinión, demasiado fuerte para un despliegue a ciudadanos en general. Por ejemplo, Steam requiere libnss3.i686 en Fedora.

ghost commented 5 years ago

Buenas!

He probado todas las sugerencias en este issue para solucionar el problema, pero no lo logro...

Ubuntu 18.04.2 LTS
AutoFirma 1.6.5 (instalado via .deb)
libnss3:amd64 2:3.35 (y no tengo version i386)

Con openjdk 11.0.3 falla con:

Error en la lectura de datos del socket: javax.net.ssl.SSLException: readHandshakeRecord

(aqui el log completo)

Y con openjdk 1.8.0_212 falla con:

Error en la lectura de datos del socket: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca

(aqui el log completo)

Intenté con y sin los enlaces simbolicos en ~/.pki/nssdb/, sin exito..

Alguna idea? Muchas gracias!

alfem commented 5 years ago

Mira si en el navegador tienes un certificado de CA que ponga algo de Autofirma.