De acuerdo, muchas gracias una vez más.
Voy a hacer un último par de intentos con la idea de las rutas, por no
descartarlo sin habre probado todo, pero a partir de ahí investigo lo de maven
y sigo tu guía...
Saludos: Javier Abínzano
-----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