sábado, 26 de marzo de 2011

Como firmar Applets de JAVA

Hace algunos años cuando me puse a diseñar applets de JAVA me encontré con el problema de que si el applet quería hacer alguna cosa que necesitara de permisos especiales (como por ejemplo acceder a algo en el pc del usuario) era necesario firmar el applet, el proceso para hacerlo es el siguiente:

Vamos a suponer que ya tienes el applet empaquetado en su .jar y también la página web que lo muestra. Para empaquetar el applet depende del programa que uses, pero la mayoría de los IDE (eclipse,netbeans,etc) te dan la opción, (con eclipse esta en exportar por ejemplo), sino, puedes usar la herramienta jar de java que te permite crearlos.

La página html podría ser tal que así, suponiendo que el jar se llame nuestroApplet y este en el paquete paq:

<html>
<head>
</head>
<body>
<applet archive="nuestroApplet.jar" code="paq.nuestroApplet"
 height="400" width="400"></applet>
</body>
</html>

Igual que con el .jar eclipse nos crea este archivo, cuando estemos realizando una ejecución de prueba dentro del entorno, en la carpeta del proyecto podemos encontrar el archivo .html.

Si intentamos acceder ahora a la página nos dará una excepción de seguridad.

Para solucionarlo tenemos que firmar el applet, para eso tenemos las herramienta keytool y jarsigner en el JAVA_HOME/bin que dependerá de donde hayamos instalado el JDK aunque probablemente el PATH este modificado y no sea necesario situarse en esa ruta para ejecutar los programas que nos hacen falta.

Bien pues abrimos una consola de windows, escribiendo cmd en ejecutar.

Escribimos:

keytool -genkey -alias clave -validity 150 -v

donde clave es un alias para las claves y configuramos una validez de 150 días.

Tendremos que responder a una serie de cuestiones de carácter informativo que el usuario podrá consultar para ve si quiere o no aceptar el certificado.

  • Clave para el almacén: Esto si deberemos recordarlo.
  • Pregunta nombre y apellidos: "Pepe domingo", lo que quieras
  • Pregunta nombre del departamento de la empresa: "PC.COM" por ejemplo
  • Pregunta nombre de la empresa: "jotaPower", lo que quieras
  • Pregunta localidad: VillaCujons
  • Pregunta provincia: Madrid
  • Pregunta código del pais de dos letras: ES, de España.
  • Nos muestra lo que hemos metido y pregunta si es correcto, digo que sí.
  • Pide otra contraseña, si quiero la misma que antes simplemente pulso enter
  • Genera un fichero .keystore en la carpeta del usuario que este ejecutando to esto

Tenemos el certificado, ahora lo usamos para firmar el applet ( el .jar), escribiendo:

jarsigner.exe nuestroApplet .jar clave -verbose

  • Nos pide la clave del almacén de claves, la metemos.

Al hacer esto modificará el .jar agregándole la información de firmado, así que debe estar cerrado y que ningún programa lo este usando en este momento.

Una vez hecho esto, ya podemos abrir la página y ver que nos salta el cuadrito informándonos de que el applet esta firmado pero por un kinki, es normal, si fueramos una compañia reconocida pues no habría tanto miedo, por eso recomiendo si es para algo "medio importante" dar unos datos más serios que los que hemos puesto xd.

Y listo ya tenemos nuestro applet firmado!

Un ejemplo lo podemos ver en un borrador de archivos que hice algunos años, y en el que tuve que usar todo este proceso.

Borrador de Archivos

Nada más, espero que os sea de utilidad.

Un saludo!

Fuente: chuwiki.chuidiang.org

No hay comentarios:

Publicar un comentario

Ponte un nombre aunque sea falso, que Anó-nimo queda mu feo :(