Firmar JARs Java Web Sart
Posted On lunes, 20 de julio de 2009 at en 15:32 by Jaehoo![]() |
| De JavaWebStart |
Ultimamente he investigado sobre applets, swing y JNLP y ha resultado un tema muy interesante, ya que abarca conceptos de seguridad, diseño, arquitectura de cliente servidor, etc...
Como dato cultural: Java Web Start es un mecanismo desarrollado por SUN para ejecutar aplicaciones de contenido rico (swing y applets) a través del navegador web, esto se realiza por medio del JNLP que es un protocolo de comunicación que permite lanzar nuestras applicaciones desde un lugar remoto, anteriormente esto se podia manejar mediante applets pero.. por razones de seguridad se les negaba acceso a los recursos de la maquina, ya que alguién los podria manipular de forma incorrecta e incluso robar información de ella.
Sobre todo en la seguridad, encontre este enlace donde explican màs a detalle cuales son las restricciones de las aplicaciones (swing/applets):
http://www.chuidiang.com/chuwiki/index.php?title=Firmar_Applets
Pero bueno al grano, para poder hacer que nuestras aplicaciones ejecuten con toda su funcionalidad sin restricciones debemos firmarlas, y claro!! que el usuario que lo ejecute acepte esa firma, podemos hacerlo de la siguiente manera:
1. Generar la llave: Es como el identificador que va a validar nuestra aplicación, yo encontre estas dos formas, abrimos una terminal e introducimos cualquiera de ellas:
// Genera la llave "NombreLlave" con una vigencia de un año
keytool -genkey -alias NombreLlave -validity 360 -v
// Genera la llave "MyKey" con la vigencia por un año, el valor por defecto es un año
keytool -genkey -keyalg rsa -alias Mykey
2. Exportar el certificado (OPCIONAL): Esto es se integra con el navegador (no se como aun) pero es como un contrato, si quieres que tu aplicación sea validada tienes que darle una copia del certificado al usuario que lo vaya a utilizar.
keytool -export -alias Mykey -file MyCert.crt
3. Comprimir tu applicación (OPCIONAL): Esto es para crear el archivo jar, como hoy todo mundo utiliza IDE no creo que sea necesario que hagas esto, solo busca donde esta tu archivo y te pasas al siguiente paso para firmarlo
jar cvf file.jar main/
4. Firmar el jar: Aqui esta lo chido!!, en una terminal buscas tu jar y lo firmas con la llave que generaste:
jarsigner file.jar Mykey
5. Verificar la firma: Solo es para ver si realmente ya esta firmada nuestra aplicación.
jarsigner -verify -verbose -certs file.jar
Con esto nuestras applicaciones ya tienen permisos hasta para crear y modificar archivos en el cliente, claro solo si el usuario acepta ejecutarlos jaja :p.
Si deseas más información YO recomiendo que visites la documentación de java, realmente todo viene muy bien explicado ahí.
![]() |
| De JavaWebStart |
Saludos


