Domanda
Ho un errore sull'applet durante il processo di firma digitale, cosa può essere?
Risposta
cause di errore che conivolgono le smart-card durante la firma digitale dei documenti sono, data la varietà di SmartCard e di lettori e le possibili configurazioni client, molteplici.
Questo documento aiuta l'utente a isolare i singoli problemi dando risposta ai casi più comuni / già segnalati.
Il docente/utente ha eseguito il test di firma ?
Se il docente non ha eseguito il test di firma consultare la pagina del Test di firma
Il docente non riesce ad eseguire il test di firma / il test di firma da errore
in questo caso la configurazione del client dell'utente non è compatibile con confirma oppure sono presenti delle condizioni che ne pregiudicano il funzionamento: qui sotto sono elencate una lista di condizioni comuni che fanno fallire il test di firma / la firma dei verbali, per effettuare i controlli nella popup di errore che fornisce l'applet di firma premere su dettagli e cercare lo stack trace tra quelli elencati
- Nel pc del docente è presente un kit di altro produttore (di norma actalis) che interferisce con Confirma, questo errore è dato dal fatto che questo/questi KIT installano una vecchia versione della libreria generica di comunicazione con la smartcard (jpcsc.dll) nel path della virtual machine del computer. Confirma utilizza invece le librerie che vengono scaricate nella directory Confirma della home dell'utente, queste, per impostazione di sistema, vengono caricate dopo la libreria presente nella virtual machine.questa situazione provoca l'errore segnalato.
java.lang.NoSuchMethodError: com.linuxnet.jpcsc.PCSC.initializeLibrary(Ljava/lang/StringV
at cin.security.pcsc.JPCSCHandler.initializeLibrary(JPCSCHandler.java:33) at cin.security.pcsc.PCSCHandler.getInstance(PCSCHandler.java:54) at cin.security.p11.provider.P11Provider.initializePCSC(P11Provider.java:141) at cin.security.token.manager.PKCS11Manager.newInstance(PKCS11Manager.java:243) at cin.confirma.applet.SignerApplet$2.run(SignerApplet.java:382) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)Soluzione:
disinstallare il kit che interferisce con confirma
- Le CRL sono necessarie per la validazione della firma di un documento elettronico, la normativa prevede di controllare in maniera stringente la data di fine validità di una CRL (che ha falidità oraria). Esse3, per motivi di performance, scarica le CRL nel database con frequenza sufficiente a garantirne la validità, nel caso ci fossero dei problemi di sincoronizzazione con l'ente certificatore la firma potrebbe fallire perchè le CRL non sono più valide con il seguente errore
cin.soap.SOAPFaultException: Internal Server Error []
at cin.soap.SOAPMessageProcessor.createSOAPFaultException(SOAPMessageProcessor.java:367)at cin.soap.SOAPMessageProcessor.getSOAPMessageObject(SOAPMessageProcessor.java:257)at cin.soap.SOAPMessageProcessor.getSOAPMessageObject(SOAPMessageProcessor.java:232)at cin.soap.client.SOAPClientOperation.runConnection(SOAPClientOperation.java:649)at cin.soap.client.SOAPClientOperation.access$1(SOAPClientOperation.java:568)at cin.soap.client.SOAPClientOperation$1.run(SOAPClientOperation.java:496)Per verificare se l'errore è di questo tipo, controllare la data di sincronizzazione delle CRL nella pagina di setup di confirma <sito_web_esse3>/admin/FirmaDigitale/ConfirmaSetup.do
controllare se nel dettaglio della CRL la data di inserimento è minore di un'ora rispetto alla data di sistema
Nel caso non fosse cosi' occorre forzare manualmente il refresh delle CRL tramite l'apposita funzione evidenziata nella figura precedente
Soluzione
Forzare il ricaricamento delle CRL tramite l'apposito link nella pagina di setup di confirma
- Il test di firma / la firma di un lotto fallisce con il seguente errore
java.io.IOException: EstablishContext(): 0x8010001d, General error.
at cin.security.pcsc.JPCSCHandler.getReader(JPCSCHandler.java:59)Il problema è dovuto all'assenza o ad un installazione errata del lettore di smart card, magari ha anche solo perchè e stato cambiata la porta USB o aggiunto un HUB e il dispositivo non ha più sufficiente alimentazione.
Soluzione
Per risolvere il problema è possibile tentare di disinstallare il driver del lettore e, se è un modello che richiedeva l'installazione, e riinstallarlo, o provare con un altro lettore.
- La firma fallisce con il seguente errore
java.lang.ClassFormatError: Incompatible magic value 1008813135 in class file cin/confirma/applet/ConfirmaAppletLoader
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Eccezione: java.lang.ClassFormatError: Incompatible magic value 1008813135 in class file cin/confirma/applet/ConfirmaAppletLoader
Il problema è dovuto alla presenza nella cache di java di una versione dell'applet errata, normalmente questa cache si dovrebbe aggiornare quando il browser rileva una nuova versione dell'applet. In alcuni casi questo non succede.
Soluzione
Per risolvere il problema utilizzare la seguente procedura
- Chiudere tutte le finestre del browser in utilizzo
- Aprire il pannello di controllo, selezionare l'icona java
- nella finestra che compare, nel tab Generale premere il pulsante Impostazioni nella sezione File Temporanei Internet
- Eliminare tutti i file della cache
- Aprire il browser e resettare anche la cache del browser
- In alcuni rari casi può essere necessario reinstallare il plugin di java.
- La firma fallisce con il seguente errore
java.lang.UnsatisfiedLinkError: /private/var/folders/cc/cce3pJTbG1OXuIf543Y7tk+++TI/-Tmp-/temp3895040597220900823jpcsc.jnilib: no suitable image found.
Did find: /private/var/folders/cc/cce3pJTbG1OXuIf543Y7tk+++TI/-Tmp-/temp3895040597220900823jpcsc.jnilib: mach-o, but wrong architectureSoluzione:
su MAC l'errore è dovuto al fatto che il browser sta girando in modalità 64 bit (nativa) occorre impostare il browser (Safari o Firefox 4 o superiori) in modalità 32bit con la seguente procedura:
- Aprire la cartella applicazioni
- Sulla icona del browser (Safari o Firefox) cliccare col tasto dx del mouser
- selezionare get info
- spuntare la voce "Apri in modalità 32bit"
- Chiudere e riaprire firefox o safari
Processo
- Firma digitale e conservazione
- tutti