Guía de comandos de eSigner CodeSignTool

Herramienta CodeSign es una utilidad de línea de comandos Java multiplataforma segura y orientada a la privacidad para firmar de forma remota Microsoft Authenticode y objetos de código Java con firmante electrónico Certificados de firma de código EV. Los hash de los archivos se envían a SSL.com para firmar para que no se envíe el código en sí. Esto es ideal cuando es necesario firmar archivos confidenciales, pero no deben enviarse por cable para su firma. CodeSignTool también es ideal para procesos por lotes automatizados para firmas de alto volumen o integración en flujos de trabajo de canalización de CI / CD existentes.

Si desea probar CodeSignTool con una cuenta de demostración y un certificado, lea Certificados y credenciales de demostración de eSigner para obtener credenciales e información de configuración.

Para conocer todos los tipos de archivos que CodeSignTool puede firmar, consulte este artículo: Tipos de archivos compatibles con eSigner

Para obtener instrucciones sobre cómo automatice la firma de código EV usando signtool.exe o certutil.exe por favor revise este tutorial.

Si está buscando usar esigner para firmar documentos en su lugar, por favor consulte esta guía de DocSignTool.

Instalación de CodeSignTool

Para instalar la versión actual de CodeSignTool, simplemente descargue y descomprima el archivo correcto para su sistema operativo:

Tenga en cuenta que la descarga de Windows incluye el tiempo de ejecución de Java, pero la versión de Linux / macOS requiere que el tiempo de ejecución de Java esté instalado en su computadora. La versión de Windows del comando es un archivo por lotes (CodeSignTool.bat) y la versión de Linux / macOS es un script de shell (CodeSignTool.sh).

Descripción general del uso de CodeSignTool

Uso: CodeSignTool [-hV] [COMMAND] [PARAMETERS]

Opciones:

  • -h, --help: Muestra el mensaje de ayuda y sale.
  • -V, --version: Muestra la información de la versión y sale.

comandos:

  • get_credential_ids: Muestra la lista de ID de credenciales de eSigner asociados con un usuario en particular.
  • credential_info: Salida de información de clave y certificado relacionada con un ID de credencial.
  • sign: Objeto de código de firma y marca de tiempo.
  • batch_sign: Firme y marque la fecha y hora de varios objetos de código con una sola OTP.
  • hash: Calcule previamente los hash (s) para usarlos posteriormente con batch_hash_sign mando.
  • batch_sign_hash: Sign hash (s) precalculados con hash mando.

parámetros:

  • -access_token=<TOKEN>: OAuth Token de acceso.
  • -credential_id=<CREDENTIAL_ID>: ID de credencial para la firma del certificado.
  • -input_dir_path=<PATH>: Directorio de entrada para que los objetos de código se firmen, se calculen los hash o se seleccionen archivos sin firmar y los hash correspondientes para firmar.
  • -input_file_path=<PATH>: Ruta del objeto de código a firmar.
  • -otp=<OTP>: Valor de OAuth OTP de la aplicación de autenticación.
  • -output_dir_path=<PATH>: Directorio donde se escribirán los objetos de código firmado.
  • -password=<PASSWORD>: Contraseña de la cuenta SSL.com.
  • -program_name=<PROGRAM_NAME>: Nombre del programa (solo para instaladores de MSI).
  • -totp_secret=<TOTP_SECRET>: OAuth Secreto de TOTP
  • -username=<USERNAME>: Nombre de usuario de la cuenta SSL.com
  • -override="true": sobrescribe el archivo firmado
Si su contraseña incluye caracteres especiales, escríbala entre comillas (p. Ej. -password="P!@^^ssword12").

Comandos CodeSignTool

get_credential_ids

Genere la lista de ID de credenciales de eSigner asociados con un usuario en particular. Parámetros -username y -password son requeridos.

Uso: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>

Ejemplo:

CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41"
Credential ID(s):
- fe537ace-e132-52a9-c2e7-egcd2ac3f1e6

Entrando CodeSignTool get_credential_ids sin los parámetros requeridos, se mostrará la información de uso del comando.

credencial_info

Salida de información de clave y certificado relacionada con un ID de credencial. Parámetros -credential_id, -usernamey -password son requeridos.

Uso: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>

Ejemplo:

CodeSignTool credential_info -credential_id = fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password = "P0z9 @ lxo41" Información del asunto del certificado EVCS: - DN del asunto: OID.1.3.6.1.4.1.311.60.2.1.3 .1.3.6.1.4.1.311.60.2.1.2 = EE. UU., OID.2.5.4.15 = Nevada, OID.20081614243 = Organización privada, CN = SSL Corp, SERIALNUMBER = NV26, O = SSL Corp, L = Houston, ST = Texas, C = EE. UU. - Caducidad del certificado: lunes 21 de febrero 21:37:2024 EST 3 - DN del emisor: CN = SSL.com CA intermedia de firma de código EV RSA RXNUMX, O = SSL Corp, L = Houston, ST = Texas , C = EE. UU.

Entrando CodeSignTool credential_info sin los parámetros requeridos, se mostrará la información de uso del comando.

código_escaneo

Habilita el análisis de malware previo a la firma. Esto escanea su archivo en busca de posible malware para evitar comprometer el código. y evita la firma de código si se detecta malware.

Uso: CodeSignTool scan_code [-hV] -credential_id=<credentialId> -input_file_path=<inputFilePath> -password=<password> [-program_name=<programName>] -username=<username>

Para obtener información más detallada sobre los beneficios de seguridad del servicio Malware Scan de SSL.com, puede visitar nuestro página dedicada.

firmar

Objeto de código de firma y marca de tiempo. Parámetros -username, -passwordy -input_file_path son requeridos. -credential_id es necesario solo para usuarios con más de un certificado de firma de código eSigner. -output_dir_path, -program_namey -totp_secret son opcionales

Uso: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]

Parámetros opcionales:

  • If -credential_id se omite y el usuario solo tiene un certificado de firma de código eSigner, CodeSignTool lo utilizará de forma predeterminada. Si el usuario tiene más de un certificado de firma de código, este parámetro es obligatorio.
  • If -output_dir_path se omite, el archivo especificado en -input_file_path se sobrescribirá con el archivo firmado. CodeSignTool le preguntará al usuario antes de sobrescribir el archivo.
  • If -program_name está presente al firmar un instalador MSI, el valor se mostrará en el cuadro de diálogo de confirmación como el nombre del programa.
  • If -totp_secret está presente, CodeSignTool calculará una OTP basada en el tiempo para la firma, lo que permitirá el uso automatizado de la herramienta. Si este parámetro no está presente, se le pedirá al usuario que ingrese manualmente la OTP.
Para obtener información sobre cómo inscribir un certificado de firma de código EV en eSigner y configurar la autenticación de dos factores, lea Firma remota de código EV con eSigner. Para obtener información sobre el valor secreto de TOTP, consulte Automatizar la firma de código de eSigner EV.

Ejemplos:

Entrada manual de OTP:

CodeSignTool sign -credential_id = fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password = "P0z9 @ lxo41" -output_dir_path = firmado -input_file_path = test.exe Ingrese la OTP - Presione enter para continuar : 884646 Código firmado correctamente: C: \ Users \ John Doe \ Desktop \ CodeSignTool-v1.0-windows \igned \ test.exe

Generación automatizada de OTP:

CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe
Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe

Entrando CodeSignTool sign sin los parámetros requeridos, se mostrará la información de uso del comando.

Si recibe el mensaje de error, Error: invalid otp al intentar firmar un archivo, podría deberse a uno o más de estos problemas:

  • El código QR que escaneó en su aplicación de autenticación no coincide con el nombre de usuario, contraseña y / o ID de credencial de su comando. Esto podría suceder si:
    • Tiene varias cuentas configuradas para 2FA en su dispositivo y eligió la incorrecta.
    • Está intentando utilizar sus credenciales de inicio de sesión para un certificado compartido, pero escaneó un código QR compartido por un compañero de equipo desde su cuenta.
  • La OTP que ingresó ya venció.
  • Su comando incluye un secreto TOTP no válido.
Algunos usuarios de eSigner han informado problemas con firmas no válidas al firmar instaladores de MSI creados con Microsoft Visual Studio. Como solución alternativa, le sugerimos que cree sus archivos MSI con Conjunto de herramientas WiX. Para la conveniencia de los usuarios de Visual Studio, un Extensión de WiX Toolset VS está disponible.

lote_sign

Nota: 100 es el número máximo de archivos de código que se pueden firmar por lote.

Firme y marque la hora hasta 100 archivos de código con una OTP. Parámetros -username, -passwordy -input_dir_path son requeridos. -credential_id es necesario solo para usuarios con más de un certificado de firma de código eSigner. -output_dir_path, -program_namey -totp_secret son opcionales

Uso: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]

Si un usuario desea realizar una firma por lotes con comprobación de malware, cada objeto de código del lote debe escanearse primero con el scan_code comando y luego, el batch_sign El comando se puede ejecutar.

Parámetros opcionales:

  • If -credential_id se omite y el usuario solo tiene un certificado de firma de código eSigner, CodeSignTool lo utilizará de forma predeterminada. Si el usuario tiene más de un certificado de firma de código, este parámetro es obligatorio.
  • If -output_dir_path se omite, los archivos especificados en -input_dir_path se sobrescribirá con los archivos firmados. CodeSignTool le preguntará al usuario antes de sobrescribir el archivo.
  • If -program_name está presente al firmar un instalador MSI, el valor se mostrará en el cuadro de diálogo de confirmación como el nombre del programa.
  • If -totp_secret está presente, CodeSignTool calculará una OTP basada en el tiempo para la firma, lo que permitirá el uso automatizado de la herramienta. Si este parámetro no está presente, se le pedirá al usuario que ingrese manualmente la OTP.

Ejemplo:

CodeSignTool batch_sign -username=john.doe@example.com -password = "P0z9 @ lxo41" -credential_id = fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path = input -output_dir_path = output Ingrese el OTP - 455145 Presione enterXNUMX para continuar: XNUMX El comando de firma por lotes se ejecutó correctamente. Directorio de salida para archivos firmados: salida

Entrando CodeSignTool batch_sign sin los parámetros requeridos, se mostrará la información de uso del comando.

hachís

Calcule previamente los hash (s) para usarlos posteriormente con batch_hash_sign mando. Parámetro -input_dir_path se requiere. -program_name es opcional

Uso: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]

Parámetros opcionales:

  • If -program_name está presente al firmar un instalador MSI, el valor se mostrará en el cuadro de diálogo de confirmación como el nombre del programa.

Ejemplo:

CodeSignTool hash -input_dir_path = input El comando Hash se ejecutó correctamente. Archivos hash creados en: entrada

Entrando CodeSignTool hash sin los parámetros requeridos, se mostrará la información de uso del comando.

lote_sign_hash

Sign hash (s) precalculados con hash mando. Parámetros -access_token, input_dir_path, -otpy output_dir_path son requeridos. -credential_id es necesario solo para usuarios con más de un certificado de firma de código eSigner.

Uso: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>

Parámetros opcionales:

  • If -credential_id se omite y el usuario solo tiene un certificado de firma de código eSigner, CodeSignTool lo utilizará de forma predeterminada. Si el usuario tiene más de un certificado de firma de código, este parámetro es obligatorio.

Ejemplo:

CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU
0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW
I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9
hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI
UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82
4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9
qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9
-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392
Batch sign hash command executed successfully. Output directory for signed files: output

Entrando CodeSignTool batch_sign_hash sin los parámetros requeridos, se mostrará la información de uso del comando.

Vídeo: firma de código EV en la nube con eSigner y CodeSignTool

https://youtu.be/Br25mZIlKdU
¡Gracias por elegir SSL.com! Si tiene alguna pregunta, comuníquese con nosotros por correo electrónico a Support@SSL.com, llamada 1-877-SSL-SECURE, o simplemente haga clic en el enlace de chat en la parte inferior derecha de esta página. También puede encontrar respuestas a muchas preguntas de soporte comunes en nuestro base de conocimientos.
Twitter
Facebook
Etiqueta LinkedIn
Reddit
Correo electrónico

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.