Esta guía le ayudará a comenzar a firmar su código Java con un OV / IV or EV certificado de firma de código de SSL.com. Estas instrucciones asumen que el Kit de desarrollo de Java (JDK) está instalado en su computadora y que el keytool
y jarsigner
los comandos están incluidos en su RUTA. Las instrucciones de firma del código Yubikey asumen que su certificado está instalado en la ranura 9a de un FIPS de YubiKey token, ya que son enviados por SSL.com.
Si aún no tiene un certificado de firma de código y no está seguro del tipo que necesita, lea estas preguntas frecuentes.
Firma de código OV/IV (solo para certificados OV/IV emitidos antes del 1 de junio de 2023)
Configuración
Método 1: generar CSR y archivo PFX en el navegador
El método más simple para comenzar rápidamente con la firma de código Java es generar un CSR y archivo PFX cuando recupere su certificado de SSL.com e instálelo en un nuevo almacén de claves Java.
.jar
archivos directamente con un archivo PFX sin convertir agregando el -storetype pkcs12
bandera a la jarsigner
mando.- Siga los pasos que se muestran en Solicitud y recuperación de certificados de firma de código para pedir su certificado y descargar un archivo PFX con su certificado y clave privada.
- Importe el PFX a un nuevo almacén de claves con la misma contraseña utilizando el siguiente comando. (Reemplazar
MY-CERTIFICATE.p12
yMY-KEYSTORE.jks
con el nombre real de su archivo PFX y el nombre de archivo que desea dar a su almacén de claves. Tenga en cuenta también que eldestalias
es arbitrario y puede usar otro valor de alias si lo desea).keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias codeigning
Nota: El valor para-srcalias
para el archivo PFX descargado de SSL.com normalmente debería ser1
, pero puede confirmar esto ejecutando el comandokeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
y comprobando el valor mostrado paraAlias name
. - Se le solicitará una contraseña para el almacén de claves de destino y luego la contraseña del almacén de claves de origen (la contraseña que ingresó al crear el PFX). También puede ver un mensaje de advertencia que comienza con
Warning: The JKS keystore uses a proprietary format
. Puede ignorar este mensaje de manera segura.
Método 2: generar pares de claves y CSR con Java
Si prefiere generar su par de claves y CSR con Java, siga los pasos de esta sección. El proceso es el mismo que se utiliza para crear un CSR para ver la SSL /TLS certificado en Java
Crear almacén de claves y par de claves
- Primero, crearemos un almacén de claves y un par de claves pública / privada. Java usa archivos con la extensión
.jks
(Java KeyStore) para almacenar certificados y claves criptográficas. Ingrese el siguiente comando para generar un almacén de claves y un par de claves RSA de 3072 bits. (ReemplazarMY-KEYSTORE.jks
con el nombre que le gustaría que tuviera el archivo).keytool -genkeypair -alias codeigning -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- Se le presentará una serie de indicaciones. Primero, cree y verifique una contraseña para el almacén de claves, luego ingrese y verifique la información solicitada. (Reemplace los valores que se muestran en mayúsculas con su propia información).
Ingrese la contraseña del almacén de claves: Vuelva a ingresar la nueva contraseña: ¿Cuál es su nombre y apellido? [Desconocido]: FIRSTNAME LASTNAME ¿Cuál es el nombre de su organización? [Desconocido]: Empresa ¿Cómo se llama tu Ciudad o Localidad? [Desconocido]: CIUDAD ¿Cuál es el nombre de su Estado o Provincia? [Desconocido]: ESTADO ¿Cuál es el código de país de dos letras para esta unidad? [Desconocido]: EE. UU. ¿Es correcto CN=FIRSTNAME LASTNAME, OU=DEPARTMENT, O=COMPANY, L=CITY, ST=STATE, C=US? [no si
- Se ha generado el archivo de almacén de claves y está listo para crear un CSR.
Generar CSR
- Ingrese el siguiente comando para generar un CSR del almacén de claves que acabamos de crear. (Reemplazar
MY-KEYSTORE.jks
con el valor que usó al crear el almacén de claves yMY-CSR.csr
con el nombre que quieres usar para CSR.)keytool -certreq -alias codeigning -file MY-CSR.csr -keystore MI-ALMACENAMIENTO-DE-LLAVES.jks
- Ingrese la contraseña que creó al generar el almacén de claves.
Ingrese la contraseña del almacén de claves:
- El CSR Ha sido creado. Si está listo para solicitar su certificado de SSL.com, abra el archivo en un editor de texto para copiar y pegar en el CSR campo al hacer el pedido. El contenido del archivo se parecerá al ejemplo que se muestra a continuación:
-----BEGIN NEW CERTIFICATE REQUEST----- MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVNUQVRFMQ0wCwYD VQQHEwRDSVRZMRAwDgYDVQQKEwdDT01QQU5ZMRMwEQYDVQQLEwpERVBBUlRNRU5U MRswGQYDVQQDExJGSVJTVE5BTUUgTEFTVE5BTUUwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQCrRyk8VLs1THls+vfz0YtMJ3qYYl4c5c499d1YSbfQHa6L kIYhKTxvgdtbD+ePDigKB40CpeuMp5Yu8R6g2YIVBpGMrejAZYAmrzs6tfjpelh0 ocSDwYr7H8qQ9jq6MfZTu6J7EjS5RMODB6MVq1usKg3H866xbi6lqAtcktEF+zlM 4FW9Tm3H/DW2G7EnTjlMPzgaXNIU7lLar7YAWPJgv83NV8lQNCDW4lFlZLWBU95r YkJ4gfWUFUyPc+AiGbsyDdrVjPvF5yaebnFDrwheFaWeTTigSfLY688G7bpA8VvE lKioCl8nlJlc9HOBNKKdhs4qEtF0BwSE8tOgbkWPAgMBAAGgMDAuBgkqhkiG9w0B CQ4xITAfMB0GA1UdDgQWBBTmVpJp824krUaJKrQNhsSbVjJA1jANBgkqhkiG9w0B AQsFAAOCAQEALlux89RkXyHN4PQqQHbShSeTTWLURII+F+OSK9N1RS5l8V7AMcRM wvOkPP7JBRCKiaFGTW+5vcLQNnWRqQZMe0I4E0jzhL2gGsdChPIJy9Jwgn3Rzxmw 8V0lBY1SHQ9LKgSK0jIer3PQhXHDJlE2g2Dx8nJ4WJk7l2OTF9Kkly9hg8MOQdeg VIcs3HLsVI9Cwd6UHRT6ruKL3+bRgEcb6qj+qcrKHkzN7KXbOEznd10nAm87wENS mTb012ZFMlpUDvPNAHQgoGJ6slA+pIoH1fvrkosjql7R/H7Q+onm37Qa6d9L2ZqM MhgNpNWVwI0UBU4Xy4p9oUCJnvHhQ7U+3w== -----END NEW CERTIFICATE REQUEST-----
Solicitar y recuperar certificado
- Siga los pasos que se muestran en Solicitud y recuperación de certificados de firma de código a través del paso 24. En lugar de hacer clic inmediatamente en Generar certificado botón, marque la casilla etiquetada yo tengo mi propio CSR.
- Pegar su CSR en el campo del formulario y haga clic en el Generar certificado del botón.
- Haga clic en el Descargar botón y guardar el
.crt
archivo en el mismo lugar donde generó su almacén de claves.
Importar certificado en Keystore
- Utilice el siguiente comando para importar el certificado en su archivo de almacén de claves Java. (Reemplace MY-CERTIFICATE.crt y MY-KEYSTORE.jks con los nombres de archivo reales).
keytool -importcert -file MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias codeigning
- Ingrese la contraseña del almacén de claves cuando se le solicite.
Ingrese la contraseña del almacén de claves:
- Su certificado está instalado en el almacén de claves y está listo para comenzar a firmar archivos.
La respuesta del certificado se instaló en el almacén de claves
Firmar archivos con Jarsigner
- Use el siguiente comando para agregar una firma digital con marca de tiempo a un
.jar
expediente. (Reemplazar/PATH/TO/MY-KEYSTORE.jks
yMY-JAR.jar
con los nombres de archivo reales que está utilizando. Si utilizó un alias diferente al configurar su almacén de claves, sustitúyalo porcodesigning
en el comando)jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks MY-JAR.jar codeigning
Nota: También es posible firmar su.jar
archivos directamente con un archivo PFX sin convertir agregando el-storetype pkcs12
bandera a lajarsigner
mando.
Nota: De forma predeterminada, SSL.com admite marcas de tiempo de claves ECDSA.
Si encuentra este error:The timestamp certificate does not meet a minimum public key length requirement
, debe comunicarse con su proveedor de software para permitir las marcas de tiempo de las claves ECDSA.
Si no hay forma de que su proveedor de software permita el uso del punto final normal, puede usar este punto final heredadohttp://ts.ssl.com/legacy
para obtener una marca de tiempo de una unidad de sellado de tiempo RSA. - Ingrese la contraseña del almacén de claves en la solicitud.
Ingrese la frase de contraseña para el almacén de claves:
- El archivo ya está firmado. Puede verificar la firma con el siguiente comando:
jarsigner -verify -verbose MI-JAR.jar
- Si su archivo se firmó correctamente, la salida del comando debe incluir esta línea:
s = se verificó la firma
Firma de código IV, OV y EV con YubiKey
Configuración
Instale el controlador PKCS # 11 y cree el archivo eToken.cfg
Windows
- Instale OpenSC siguiendo las instrucciones en OpenSC Inicio rápido de Windows.
- Localice el controlador OpenSC PKCS # 11. La ubicación de instalación predeterminada es
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - Cree un archivo de configuración y guárdelo en una ubicación conveniente (como su directorio de inicio). El nombre de archivo es arbitrario, pero en esta guía usaremos
yubikey-pkcs11-java.cfg
. El archivo debe contener la siguiente información:name = OpenSC-PKCS11 description = SunPKCS11 a través de la biblioteca OpenSC = C: \ Archivos de programa \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
macOS
- de Vidir OpenSC. Si utiliza Homebrew Como administrador de paquetes, puede instalar OpenSC con el siguiente comando:
instalar brew opensc
- Localice el controlador OpenSC PKCS # 11. Si instaló usando Homebrew, el archivo debería estar disponible en
/usr/local/lib/opensc-pkcs11.so
. - Cree un archivo de configuración y guárdelo en una ubicación conveniente (como su directorio de inicio). El nombre de archivo es arbitrario, pero en esta guía usaremos
yubikey-pkcs11-java.cfg
. El archivo debe contener la siguiente información:name = OpenSC-PKCS11 description = SunPKCS11 a través de la biblioteca OpenSC = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0
Firmar archivos con Jarsigner
- Use el siguiente comando para agregar una firma digital con marca de tiempo a un
.jar
expediente. (ReemplazarMY-JAR.jar
con el nombre de archivo real que está utilizando)jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore NONE -storetype PKCS11 MY-JAR.jar "Certificado de autenticación PIV"
- Ingrese su PIN de YubiKey en la solicitud de frase de contraseña.
Ingrese la frase de contraseña para el almacén de claves:
- El archivo ya está firmado. Puede verificar la firma con el siguiente comando:
jarsigner -verify -verbose MI-JAR.jar
- Si su archivo se firmó correctamente, la salida del comando debe incluir esta línea:
s = se verificó la firma