En este artículo explicaremos como firmar un applet con un certificado propio o uno CA. Para el desarrollo se emplea las herramientas disponibles en el Kit de Desarrollo jdk1.6.0_04. Llamaremos %JPATH% al directorio donde se encuentran los ejecutables del JDK, por ejemplo "C:\Archivos de programa\Java\jdk1.6.0_04\bin". En Netbeans he modificado una aplicación que usa librerías que implementan el protocolo IAX2 y el resultado final es un softphone desplegable en una simple página html. Agregar la ruta de los binarios de Java a la variable de entorno PATH Para poder trabajar con los ejecutables del JDK desde cualquier directorio agregaremos la ruta %JPATH% a la variable de entorno PATH. Seleccionamos Propiedades dentro del Menu contextual sobre Mi PC. Bajo la pestaña de Opciones avanzadas hacemos click sobre el botón Variables de entorno. Buscamos y hacemos click sobre Path entre las Variables de sistema, luego hacemos click sobre el botón Modificar y en el Valor de la variable agregamos al final un punto y coma (";") seguido de %JPATH%. Creación de la llave Usaremos el algoritmo RSA y el alias cg1key. C:\>keytool -genkey -keyalg rsa -alias cg1key Escriba la contraseña del almacén de claves: ******** ¿Cuál es son su nombre y su apellido? [Unknown]: Franco Cedillo ¿Cuál es el nombre de su unidad de organización? [Unknown]: IT ¿Cuál es el nombre de su organización? [Unknown]: CyberGod ¿Cuál es el nombre de su ciudad o localidad? [Unknown]: Lima ¿Cuál es el nombre de su estado o provincia? [Unknown]: Lima ¿Cuál es el código de país de dos letras de la unidad? [Unknown]: PE ¿Es correcto CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE? [no]: si Escriba la contraseña clave para (INTRO si es la misma contraseña que la del almacén de claves): ENTER Exportación de la llave C:\>keytool -export -alias cg1key -file cg1key.crt Escriba la contraseña del almacén de claves: Certificado almacenado en el archivo Compilación de Applet Basta con colocarse en el directorio build dentro de la ruta de nuestro projecto. Allí debemos ubicar las bibliotecas JAR empleadas y un archivo con el texto que requerimos en el manifiesto. El manifiesto es un archivo de texto que puede tener la siguiente estructura: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.0 Created-By: 10.0-b19 (Sun Microsystems Inc.) X-COMMENT: Main-Class will be added automatically by build Class-Path: inifile.jar jiaxc_windows_x86.jar jiaxc_windows_x86_md5.jar jiaxclient.jar libjiaxc.jar swing-layout-1.0.jar Para este ejemplo he llamado mymanifest al archivo de texto que será agregado como manifiesto al archivo JAR que generaré. En la línea de comando ejecutamos: ...\build>jar cvfm jiaxTest.jar mymanifest -C classes . manifest agregado agregando: Click2Call.gif (entrada = 6574) (salida = 6537) (desinflado 0%) agregando: IaxTestApplet.class (entrada = 3062) (salida = 1507) (desinflado 50%) agregando: PhonePanel$1.class (entrada = 1193) (salida = 652) (desinflado 45%) agregando: PhonePanel$2.class (entrada = 766) (salida = 471) (desinflado 38%) agregando: PhonePanel$3.class (entrada = 698) (salida = 426) (desinflado 38%) agregando: PhonePanel$4.class (entrada = 698) (salida = 429) (desinflado 38%) agregando: PhonePanel$Listener.class (entrada = 4416) (salida = 1957) (desinflad o 55%) agregando: PhonePanel.class (entrada = 14948) (salida = 6090) (desinflado 59%) Firma de bibliotecas JARs necesarias ...\build>jarsigner inifile.jar cg1 key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. ...\build>jarsigner jiaxc_windows_x86.jar cg1key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. ...\build>jarsigner jiaxc_windows_x86_md5.jar cg1key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. ...\build>jarsigner jiaxclient.jar cg1key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. ...\build>jarsigner libjiaxc.jar cg1key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. ...\build>jarsigner swing-layout-1.0.jar cg1key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. ...\build>jarsigner jiaxTest.jar cg1key Enter Passphrase for keystore: ******* Warning: The signer certificate will expire within six months. Verificación de Firma o Signado Verificaremos uno de todos los JARs que hemos signado. ...\build>jarsigner -verify -verbose -certs jiaxTest.jar 857 Fri Mar 07 13:44:46 COT 2008 META-INF/MANIFEST.MF 762 Fri Mar 07 13:44:48 COT 2008 META-INF/CG1KEY.SF 913 Fri Mar 07 13:44:48 COT 2008 META-INF/CG1KEY.RSA 0 Fri Mar 07 13:39:52 COT 2008 META-INF/ smk 6574 Wed Mar 05 17:41:44 COT 2008 Click2Call.gif X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 3062 Wed Mar 05 17:41:44 COT 2008 IaxTestApplet.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 1193 Wed Mar 05 17:41:44 COT 2008 PhonePanel$1.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 766 Wed Mar 05 17:41:44 COT 2008 PhonePanel$2.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 698 Wed Mar 05 17:41:44 COT 2008 PhonePanel$3.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 698 Wed Mar 05 17:41:44 COT 2008 PhonePanel$4.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 4416 Wed Mar 05 17:41:44 COT 2008 PhonePanel$Listener.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] smk 14948 Wed Mar 05 17:41:44 COT 2008 PhonePanel.class X.509, CN=Franco Cedillo, OU=IT, O=CyberGod, L=Lima, ST=Lima, C=PE (cg1key) [certificate will expire on 5/06/08 12:54] s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope jar verified. Warning: This jar contains entries whose signer certificate will expire within six months. Desplegado de Applet Finalmente incluímos el código de llamada al Applet desde una sencilla páigna HTML. Fuente |
Monday, March 10, 2008
¿Cómo firmar un Java Applet?
Etiquetas:
certificados digitales,
firmar applet,
firmar jar,
signar applet,
signar jar
Friday, February 15, 2008
¿Qué escucho hoy?
¿Qué escucho hoy? Armin van Buuren - [2008] Universal Religion [2008] Dancefloor FG Winter (Mixed By Bob Sinclar) Bob Sinclar - [2008] Club FG (Radio FG) Estopa - [2008] Allenrok Putumayo - Latin Reggae Lounge Couture Vol.3 Buddha Chillout Experience Vol.1 Cafe Lounge Cigarette Paris Mild Eminem - [2007] Raw And Uncut Eminem - So u wanna Freestyle? |
Monday, February 11, 2008
Firefox 3 Beta 2
Firefox 3 beta 2
Hace pocos meses vengo trabajando con Firefox 3 Beta 2 y es una versión agradable del mejor navegador web.
Autocompletado en la barra de dirección para las páginas frecuentadas. Se acompaña al url de las páginas por el título de las mismas y el ícono que pueden tener asignado.
La palabra ingresada en la url es buscada en los campos de título y en el url.
Una forma de marcar nuestras páginas favoritas es haciendo click en la estrella ubicada en la barra de direcciones. Las páginas así marcadas aparecen en la lista de marcadores unificados.
El controlador de descarga de archivos ha mejorado notablemente. Nos permite realizar pausas en las descargas y retomarlas en un momento posterior. Indica claramente la velocidad de descarga, el tiempo pendiente de descarga estimado. Esto nos permite ser independientes de un manjeador de descargas externo para los casos de descargas cotidianas.
Ahora para recordar nuestras contraseñas se desliza un pequeño panel en la parte superior de la página visitada y no se interrumpe la navegación. Es muy útil esta nueva forma de recordar passwords ya que hacemos click en aceptar sólamente cuando verificamos que el password ingresado haya sido correcto.
Subscribe to:
Posts (Atom)

