ctt-gob-es / clienteafirma

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

Error SAF_11 al firmar con Internet Explorer y Autofirma 1.7.2 #247

Open el-rabanero opened 2 years ago

el-rabanero commented 2 years ago

Tras la última actualización de Autofirma 1.7.2, en el Registro Único Ciudadano de la JCCM hemos tenido que avisar de que no se use la entrada con Certificado Digital si se usa Internet Explorer (incluso 11), debido a que la firma de documentos con el lanzador que llama a Autofirma está fallando. Con el resto de navegadores Autofirma funciona correctamente. Adjuntamos el fichero de log completo, que acaba en:

<record>
<date>2022-02-15T09:23:05.170982500Z</date>
<millis>1644916985170</millis>
<nanos>982500</nanos>
<sequence>21</sequence>
<logger>es.gob.afirma</logger>
<level>SEVERE</level>
<class>es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherErrorManager</class>
<method>showError</method>
<thread>1</thread>
<message>Ha ocurrido un error realizando la operación.
(SAF_11: Error enviando la firma al servidor remoto)</message>
</record>

Hemos intentado todas las recomendaciones ante el error SAF_11, tales como asegurarnos de configurar el proxy para Autofirma, hacer pruebas sin proxy, deshabilitar "sólo conexiones de sitios seguros", verificar que IE 11 no está en modo de compatibilidad, etc.

Revisando el log, observamos errores previos del tipo:

<message>No se ha podido establecer una propiedad de seguridad 'http://javax.xml.xmlconstants/property/accessExternalStylesheet' en la factoria XML</message>

Aunque Autofirma arranca y parece funcionar. Sin embargo, al intentar el último proceso de firma produce el error siendo el desencadenante:

<frame>
<class>es.gob.afirma.core.misc.http.UrlHttpManagerImpl</class>
<method>readUrl</method>
<line>288</line>
</frame>

Indagando las causas de los primeros mensajes de error, hemos llegado a esta consulta: https://stackoverflow.com/questions/58374278/org-xml-sax-saxnotrecognizedexception-property-http-javax-xml-xmlconstants-p

En ella se relata que a partir de la versión JDK 7 no se debe importar externamente la librería org.apache.xerces ya que fue incorporada a las librerías estándar de Java (com.sun.xerces). Si se intenta esta importación, el despliegue genera conflictos y errores no controlados. Hemos comprobado que en la instalación de Autofirma, en el manifiesto jre\legal\java.xml\xerces.md se indica que se está usando Apache Xerces v2.12.0 en combinación con el OpenJDK 11, lo que puede ser la fuente de los problemas que estamos teniendo. Este problema está documentado en Apache (https://issues.apache.org/jira/browse/XERCESJ-1706)

Sea esta la causa del problema o cualquier otra que puedan rastrear en el log adjunto, nos está impidiendo ofrecer, como hemos comentado, la opción de usar Internet Explorer por Autofirma (mediante Cl@ve sí se puede firmar con IE, no obstante).

Gracias por atender el caso. Saludos.

AUTOFIRMA.afirma.log.xml.txt .

Gamuci commented 2 years ago

Hola:

Lo de Xerces no tiene nada que ver. Es una advertencia de cuando se habilitan las opciones para cargar los XML de forma segura.

¿Podéis firmar con AutoFirma 1.7.2 e Internet Explorer 11 desde VALIDe?: https://valide.redsara.es/valide/firmar/ejecutar.html

¿Estáis usando la última versión del JavaScript de despliegue (autoscript.js)?: https://administracionelectronica.gob.es/ctt/clienteafirma/descargas#.YqhThifP0uU

Un saludo,