Hola

 Sólo quería dejar constancia en el foro, por si alguien tiene el mismo 
problema que yo, de que la solución de Ricardo ha funcionado perfectamente. He 
compilado el applet con la versión de Maven 2.2.1, dejando el almacén de 
certificados y el fichero de configuración dentro del 
"uji-config-2.1.1-signed.jar", y con eso las rutas absolutas que usaba para 
localizar los ficheros de los certificados ya no son necesarias. El applet 
funciona perfectamente tanto bajo Windows como bajo Linux.

 Muchas gracias por toda la ayuda recibida.

 -----Mensaje original-----
 De: "Ricardo Borillo Doménech" <[email protected]>
 Enviado el 01/12/2011 11:59:59
 Para: "Llista de correu per al CryptoApplet" <[email protected]>
 Asunto: Re: [CryptoApplet] Cómo enlazar con certificados de una CA externa

Hola de nuevo, La solución buena es usar siempre alias y poner los certificados 
en el cas.keystore, como comentamos: DIGIDOC_CA_CERT1=keystore://gva-root Como 
parece que si no está firmado el JAR, te da problemas, la mejor opción y más 
directa es bajarse el código del proyecto, modificar el keystore con los 
certificados que querais y volverlo a compilar con maven. El script de 
construcción de maven está preparado para firmar directamente todos y cada uno 
de los JARs generados, así que no hay que hacer nada especial. Os podeis bajar 
el código de aquí: 
http://universitatjaumei.jira.com/svn/CRYPTOAPPLET/tags/CryptoApplet_2.1.2/ Y 
podeis compilar desde donde está el fichero pom.xml principal así: mvn clean 
package 2011/12/1 ABINZANO MURILLO JOSE JAVIER <[email protected]>: > 
Hola de nuevo, Ricardo > > Esperaba no tener que molestaros de nuevo, porque en 
mi PC todo funciona > perfectamente, pero al pasar todo a un entorno de pruebas 
real me he vuelto > a encontrar con el problema de las rutas absolutas y la 
verdad es que estoy > algo desesperado, por estar bloqueado tan cerca de la 
solución. Intento > explicar el problema desde cero para que no haya que leer 
ningún correo > anterior > > 1.- Ahora mismo el applet funciona bien y está 
integrado con la aplicación > que lo va a usar. Para firmar en XAdES DigiDoc 
necesita los certificados de > la CA cliente, que se declaran en el archivo de 
configuración con una ruta > absoluta de este tipo (no encontré ninguna forma 
de hacerlo con rutas > relativas): > > 
DIGIDOC_CA_CERT1=C:\\PROYECTOS\\Gottax\\GottaX\\Aplicaciones\\Picos\\CryptoApplet\\SESCAM_Root_CA.cer
 > > 2.- Al configurar esa misma ruta para la máquina de pruebas, que es una > 
máquina Unix, intento definirlo así: > > 
DIGIDOC_CA_CERT1=\\\\opt\\opt\\apache-tomcat-6.0.26\\webapps\\picos.desa\\Aplicaciones\\Picos\\CryptoApplet\\SESCAM_Root_CA.cer
 > > Y el problema es que no hay manera de que el applet encuentre el 
certificado > con este tipo de ruta. ¿Puede ser porque necesite que las rutas 
absolutas > empiecen con una letra de unidad, como en Windows? ¿Habéis apuntado 
alguna > vez a certificados en una máquina Unix de esta manera? > > Hay otro 
camino para resolver el problema, que tú mismo me indicaste en > correos 
anteriores, y es utilizar los certificados desde una keystore, lo > que 
evitaría el problema de las rutas. Tengo la keystore del cliente, pero > si la 
meto en el jar de configuración del applet > (uji-config-2.1.1-signed.jar), el 
applet queda manipulado y se invalida su > propia firma, dándome el siguiente 
error al verificar la integridad: > > 
es.uji.security.crypto.timestamp.TokenVerifyException: Unable to decipher > 
pkcs#9 encoded attributes >     at > 
es.uji.security.crypto.timestamp.TSResponseToken.verify(TSResponseToken.java:215)
 >     at > 
es.uji.security.crypto.timestamp.TSResponseToken.verify(TSResponseToken.java:187)
 >     at > 
es.uji.security.crypto.openxades.OpenXAdESSignatureFactory.formatSignature(OpenXAdESSignatureFactory.java:213)
 >     at > 
es.uji.security.ui.applet.SignatureThread.run(SignatureThread.java:452) > > 
Probé, siguiendo tu sugerencia, a eliminar los ficheros "META-INF/UJI.SF" y > 
"META-INF/UJI.RSA" del jar firmado original, que en teoría era el único que > 
no necesitaba ir firmado, pero entonces el error es otro: > > ERROR 
thread-sig-0 es.uji.security.ui.applet.SignatureThread [08:18:05,695] > - 
<html><font color='red'>No se ha podido calcular la firma</font></html> > 
java.security.AccessControlException: access denied > 
(java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11) >     at 
java.security.AccessControlContext.checkPermission(Unknown Source) >     at 
java.security.AccessController.checkPermission(Unknown Source) >     at 
java.lang.SecurityManager.checkPermission(Unknown Source) >     at 
java.lang.SecurityManager.checkPackageAccess(Unknown Source) >     at 
sun.plugin2.applet.Applet2SecurityManager.checkPackageAccess(Unknown > Source) 
>     at java.lang.ClassLoader$1.run(Unknown Source) >     at 
java.security.AccessController.doPrivileged(Native Method) >     at 
java.lang.ClassLoader.checkPackageAccess(Unknown Source) >     at > 
es.uji.security.crypto.openxades.OpenXAdESSignatureFactory.formatSignature(OpenXAdESSignatureFactory.java:86)
 >     at > 
es.uji.security.ui.applet.SignatureThread.run(SignatureThread.java:452) > > La 
pregunta clave: si os proporciono la keystore.ca del cliente y mi fichero > de 
configuración, ¿podríais generarme un "uji-config-2.1.1-signed.jar", con > 
estos ficheros en su interior pero firmado por vosotros, a ver si así pasaba > 
estos controles de seguridad? Sé que es mucho pedir, pero es la única > 
solución que se me ocurre para evitar el problema de las rutas... > > Saludos y 
muchas gracias nuevamente: Javier Abínzano > 
_______________________________________________ > CryptoApplet mailing list > 
[email protected] > 
http://llistes.uji.es/mailman/listinfo/cryptoapplet > -- Salut, 
==================================== Ricardo Borillo Domenech 
http://xml-utils.com / http://twitter.com/borillo 
_______________________________________________ CryptoApplet mailing list 
[email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet
_______________________________________________
CryptoApplet mailing list
[email protected]
http://llistes.uji.es/mailman/listinfo/cryptoapplet

Responder a