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.
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 conbatch_hash_sign
mando.batch_sign_hash
: Sign hash (s) precalculados conhash
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
-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
, -username
y -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
, -password
y -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_name
y -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.
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.
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.
lote_sign
Firme y marque la hora hasta 100 archivos de código con una OTP. Parámetros -username
, -password
y -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_name
y -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
, -otp
y 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.