java jsse

java.lang.SecurityException: los archivos de política de jurisdicción no están firmados por un firmante de confianza



jsse (4)

En lugar de mezclar versiones de tiempo de ejecución y de archivo de política, debe usar los archivos de política para Java 7.

Al trabajar en un problema diferente (relacionado con RMI), actualicé la "carpeta de seguridad" del sistema con los archivos de política de "fuerza ilimitada" y ahora mi aplicación falla de una manera diferente. Obtengo un volcado de pila largo, del cual los siguientes bits parecen pertinentes:

Exception in thread "main" java.lang.ExceptionInInitializerError [...crop...] Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:86) ... 17 more Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer! [...crop...]

Um, WTF? El ÚNICO cambio fue que moví los archivos del orignal jar a un lado y agregué los ilimitados en $ JAVA_HOME / lib / security. Ese directorio ahora se ve así:

$ ls blacklist javaws.policy trusted.libraries cacerts local_policy.jar US_export_policy.jar java.policy local_policy.jar.strong US_export_policy.jar.strong java.security local_policy.jar.unlimited US_export_policy.jar.unlimited

Por supuesto, las versiones .strong e .unlimited están ahí, así que puedo volver rápidamente.

Las instrucciones eran cortas y sencillas, y parece que SÓLO prevén la sustitución de estos dos archivos (local_policy.jar y US_exportpolicy.jar).

¿Que más hay que hacer?

Tenga en cuenta que las versiones de java y los archivos de políticas son las más recientes hasta la fecha: 1.7.0_03 y jce_policy-6, respectivamente.

PD: el artículo de título similar, que se encuentra here , no fue de ninguna ayuda.


Es posible que tengas diferentes versiones del JDK. Por ejemplo, si su JAVA_HOME apunta a la versión 7, pero en su ruta la versión 6 aparece antes de la versión 7, este error podría aparecer.


Esto podría suceder si hay archivos jar de política estándar en algún lugar de la ruta de clases. Sugiero que busque y reemplace todos los archivos local_policy.jar y us_export_policy.jar con las versiones no restringidas de estos archivos jar en su máquina. Si está utilizando WAS / Portal Server / RAD de IBM, aquí está el enlace a los jar de política de JCE sin restricciones.