Firmar applets usando keytool y jarsigner

En este tutorial os mostramos como firmar un applet con las herramientas incluidas en el JDK estándar

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);

}

 

 

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Residencia: Quito (Ecuador)Cristhian.Herrera@gmail.com / cherrera@kruger.com.ec Cuento con experiencia en el área de desarrollo de software y en la docencia académica. Dentro de la construcción de software he manejado las etapas de: análisis, diseño, personalización e implementación de aplicaciones bajo ambientes Cliente / Servidor e Internet.

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

Aprende cómo migrar tu sitio Joomla 3 a Joomla 5 de forma segura, manteniendo el diseño, la funcionalidad y compatibilidad con extensiones. Una guía paso a paso con recomendaciones, imágenes y buenas prácticas para actualizar sin sorpresas.
Descubre qué es Yocto Project, sus ventajas, usos reales en Izertis y cómo crear tu propia distribución Linux para Raspberry Pi paso a paso, de forma sencilla y flexible.
¿Trabajas con Drupal y SonarQube 9.9? En este artículo exploramos cómo adaptar el análisis estático para evitar falsos positivos, desactivar reglas conflictivas del Quality Profile y delegar el estilo a PHP CodeSniffer. Una guía práctica para mejorar la integración sin depender aún de SonarQube 10.