Preguntas y respuestas frecuentes

Otros idiomas: Dansk Deutsch Ελληνικά English Suomi Français Italiano Bokmål Nederlands Polski Português - Brasil Português - Portugal Русский Svenska Türkçe Українська Chinese Taiwan Chinese

Firma con código Java.

Imprima este artículo
Actualizado el: May 26, 2015 1:24 PM

Se requieren varias herramientas para agrupar y firmar el código Java, incluyendo keytool, jar y jarsigner. Empezando con JDK 5.0, jarsigner puede generar firmas que incluyen un sello de tiempo, permitiendo validez que se firmó el archivo JAR, así como también que el certificado con firma codificada esté aún válida.

Acercamiento 1 – Solicitar un nuevo certificado con firma codificada

  1. Si es necesario, descargue JDK desde el siguiente vínculo:
    http://java.sun.com/javase/downloads/index.jsp
  2. Solicite un certificado con firma codificada de Starfield Technologies.
    • Cree un nuevo almacén de clave. Es un lugar en el cual se almacenan los certificados de seguridad. Este ejemplo creará un almacén personal de clave codesignstore, solo para usarse para un certificado con firma codificada y la clave privada asociada.
      keytool -genkey -alias codesigncert -keypass <yourkeypwd> -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass <yourstorepwd>
    • Cree una Solicitud para firma de certificado (CSR, por sus siglas en inglés). Se creará y se almacenará una clave privada codesignstore. Un archivo CSR llamado mycsr.pem, se creará en el directorio actual de trabajo.
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • Compre un certificado con firma codificada.
    • Haga clic en el crédito del certificado con firma codificada en My Account. Esto lo llevará a la aplicación de internet Secure Certificate Services Account Management de Starfield. El método generador de CSR deberá cambiarse a manual en la forma de la solicitud para que el campo CSR sea visible.
    • Envíe una CSR como parte de una solicitud con firma codificada.
      • Después de abrir el archivo mycsr.pem en un editor, copie y coloque todo el contenido del archivo (incluyendo las líneas que contienen BEGIN NEW CERTIFICATE REQUEST y END NEW CERTIFICATE REQUEST) dentro de la sección correspondiente de la forma de solicitud con firma codificada.
    • Se verificará la información de compañía que haya proporcionado. La Autoridad de Registro (RA, por sus siglas en inglés) puede contactarle para ofrecerle una información adicional, si se requiere.
    • Una vez que se haya emitido el certificado con firma codificada, usted recibirá un mensaje por correo electrónico con un vínculo para descargar el archivo del certificado y cualquier certificado intermedio asociado.
  3. Instale el certificado con firma codificada en el mismo almacén de clave creado anteriormente. El siguiente ejemplo supone que el archivo de certificado con firma codificada sea mycert.spc. El archivo del certificado supone estar en la carpeta de trabajo actual y en formato PKCS#7.
    keytool -import -trustcacerts -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.spc
  4. Cree un archivo JAR en los archivos clase Java, usando la herramienta jar
    jar cvf myapp.jar myapp.class
    • codesignstore es un alias para el almacén de la clave la cual contiene el certificado con firma codificada, la clave privada y todos los demás certificados en la cadena.
    • El nombre del archivo de entrada es myapp.jar y será reemplazado por la versión firmada del archivo. Use la opción de línea del comando -signedjar para especificar la separación de los nombres en los archivos de entrada y salida.
    • codesigncert es un alias para la clave privada en el almacén de la clave.
    El siguiente ejemplo agrega opciones de sellado de tiempo al mismo ejemplo presentado arriba.
    jarsigner -verbose -keystore codesignstore -storepass <yourstorepwd> -keypass <yourkeypwd> -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. Firme el archivo JAR usando jarsigner, con el certificado con firma codificada y la clave privada
    jarsigner -verbose -keystore codesignstore -storepass <yourstorepwd> -keypass <yourkeypwd> myapp.jar codesigncert
  6. Verifique el archivo JAR firmado
    jarsigner -verify -verbose -certs myapp.jar
  7. Distribuya el código

Acercamiento 2 – Use el archivo existente PKCS#12, que contiene tanto el certificado con firma codificada como la clave privada

  1. Si es necesario, descargue JDK desde el siguiente vínculo:
    http://java.sun.com/javase/downloads/index.jsp
  2. Verifique que el archivo PFX/P12 puede usarse con jarsigner. Ejecute el siguiente comando, el nombre alias requerido en el paso 5 aparecerá cerca de la parte superior de la salida:
    keytool -list -storetype pkcs12 -keystore mycert.pfx -v
  3. Cree un archivo JAR en los archivos clase Java, usando la herramienta jar:
    jar cvf myapp.jar myapp.class
  4. Firme el archivo JAR usando jarsigner, con el certificado con firma codificada y la clave privada:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
    • mycert.pfx es la ruta completa para el archivo PFX/P12 que contiene el certificado con firma codificada y la clave privada. El archivo también deberá incluir todos los certificados intermedios.
    • aliasname aparecerá en la salida del paso 2, cerca de la parte superior. Si el archivo PFX/P12 fue exportado desde Windows, el nombre alias será GUID.
    • Al ser requerida, ingrese la contraseña asociada con la clave privada en el archivo PFX/P12. También podría incluir la opción -storepass para especificar la contraseña en la línea de comando.
    • El archivo sin firma de entrada es myapp.jar y será reemplazado con la versión firmada del archivo. Use la opción de la línea del comando -signedjar para especificar nombres de archivos con entradas y salidas separadas.
    El siguiente ejemplo agrega las opciones de sellado de tiempo con el mismo ejemplo presentado arriba:
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasname"
  5. Verifique el archivo JAR firmado
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribuya el código

Vínculos