Firmar applets usando keytool y jarsigner

0
46480

FIRMAR APPLETS USANDO
KEYTOOL Y JARSIGNER

 

 

Es necesario generar un applet que
utilice las herramientas para firmado de certificados digitales proporcionadas
en el JDK estándar de SUN, estas herramientas son “jar”,
keytool” y “jarsigner”.

 

Se utilizará Eclipse como IDE, y se emplea un applet que accede a las propiedades de la máquina local
para leer el usuario y el macaddres.

 

 

 

Pasos para firmar el applet

 

a)     
Desarrollar el applet y
escribir las funciones necesarias

 

Tips:

·        
Incluir el  import java.security.*;

·        
En el método init
se debe escribir lo siguiente

 

public void  init()

{ 

      AccessController.doPrivileged(new PrivilegedAction()

             {

              
public
Object run()

         {

                         try

                         {

     // Código del método INIT

  }

  catch(Exception e)

  {

 

  }

        

              return null;

             }

   });          

}

 

 

b)     
Desde el IDE probar el funcionamiento del applet.

 

 

 

 

c)     
Generar un jar empaquetando
las clases necesarias.

 

     jar cvf NetworkInfoMyApplet.jar NetworkInfoMyApplet.class    

 

 

      

 

 

d)     
Utilizar keytool
para generar un certificado, éste se almacena en un archivo keystore.

 

keytoolgenkey -alias signFilesPrueba
keypass kpi135
keystore storePruebastorepass ab987c

 

Al momento de generar el archivo
de certificado se nos preguntará algunos datos, en el caso que nos ocupa éstos
se llenaron con la siguiente información:

 

 

Cuáles son su nombre y su apellido?

[Unknown]:  Prueba Ecuador

Cuál es el nombre de su unidad de organización?

[Unknown]:  Prueba

Cuál es el nombre de su organización?

[Unknown]:  Prueba

Cuál es el nombre de su ciudad o localidad?

[Unknown]:  Pichincha

Cuál es el nombre de su estado o provincia?

[Unknown]:  Pichincha

Cuál es el código de país de dos letras de la
unidad?

[Unknown]:  EC

Es correcto CN=Prueba Ecuador, OU=Prueba, O=Prueba,
L=Quito, ST=Pichincha, C=EC?

[no]:  Y

 

 

Donde:

 

 

keystore

Especifica el URL (Path/Ubicación)
del archivo keystore  (certificado)

storepass

Especifica la clave que es requerida para acceder al keystore.

keypass

Especifica la clave usada para proteger la clave privada
del archivo keystore especificado en la línea de
comandos

alias

Alias para el archivo de certificado

 

 

 

 

e)     
Utilizar la herramienta jarsigner
para firmar el applet.

 

jarsignerkeystore
C:\j2sdk1.4.2_07\bin\storePrueba NetworkInfoMyApplet.jar
signFilesPruebastorepass
ab987c –keypass kpi135 –signedjar

Enter Passphrase for keystore:
ab987c

Enter key password for signFilesPrueba: kpi135

 

Donde:

 

keystore

Especifica el URL (Path/Ubicación)
del archivo keystore  (certificado)

storepass

Especifica la clave que es requerida para acceder al keystore.

keypass

Especifica la clave usada para proteger la clave privada
del archivo keystore especificado en la línea de
comandos

signedjar

Especifica el nombre usado para firmar el archivo JAR.

 

 

 

 

Probando
el applet

 

Insertamos el applet en una página
de prueba.

 

 

Una pantalla con información de nuestro certificado se
desplegará.

 

 

 

 

 

 

 

Invocación al applet

 

Para invocar al applet se deben
incluir las siguientes líneas dentro de la página HTML en la que se lo
utilizará:

 

<applet code=»NetworkInfoMyApplet.class»
codebase=»/classes» archive=»NetworkInfoMyApplet.jar» name=»KSNetworkInfo» width=»0″
height=»0″ >

</applet>

 

 

La función javascript que nos
devolverá el valor es la siguiente:

 

function ejecutoApplet()
{

 

   
var Myapplet = document.applets[‘KSNetworkInfo‘];

   
var form =
document.forms[‘frm01’];

            //alert(«Veamos
» );

    form.txtmacaddress.value= Myapplet.ReturnMacAddress();

             //alert(«Mac:
» + form.txtmacaddress.value);

  //alert(«Navegador » + nombre);

              return true;

            //return enviarForma(form);

}

 

 

Dejar respuesta

Please enter your comment!
Please enter your name here