Guía de uso de la herramienta de línea de comandos SignTool
SignTool es el cliente de línea de comandos del servicio de firma remota de código de sslTrus, diseñado para ejecutar operaciones de firma de código en terminales o scripts de automatización.
Inicio rápido
A continuación se muestra un ejemplo del comando de firma más básico, que puede copiar y modificar según los comentarios antes de usarlo:
# 视情况而定,是否需要开启调试模式
#export DEBUG=1
# 使用环境变量配置 AK、SK 以及证书订阅号
export SIGNTOOL_ACCESS_KEY='' SIGNTOOL_ACCESS_SECRET='' SIGNTOOL_CERT_CODE=''
# 签名
./signtool sign \
--dry-run \
--access-key=$SIGNTOOL_ACCESS_KEY \
--access-secret=$SIGNTOOL_ACCESS_SECRET \
--cert-code=$SIGNTOOL_CERT_CODE \
--file=app-unsigned.exe \
--out=app.exe \
--sha1=false \
--sha2=true \
--timestamp-rfc3161 http://timestamp.acs.microsoft.com
Explicación detallada del comando
Antes de empezar, debe preparar los tres datos siguientes:
Consultar la ayuda
Utilice el parámetro -h o --help para consultar la ayuda completa del comando.
./signtool sign -h
Explicación de los parámetros principales
| Parámetro | Abreviatura | ¿Obligatorio? | Descripción y ejemplo |
|---|---|---|---|
| --access-key | -k | Sí | Clave de acceso a la API. También se puede configurar mediante la variable de entorno SIGNTOOL_ACCESS_KEY. |
| --access-secret | -s | Sí | Clave de acceso a la API. También se puede configurar mediante la variable de entorno SIGNTOOL_ACCESS_SECRET. |
| --cert-code | -c | Sí | Número de suscripción del servicio de firma de código remoto, utilizado para especificar el certificado de firma y la facturación. |
| --file | -f | Sí | Ruta del archivo a firmar. Por ejemplo: -f “app.dll”. |
| --out | -o | No | Ruta del archivo de salida. Por defecto, se añade .signed al nombre del archivo original. Importante: si el archivo ya existe, la operación fallará. |
| --override | No | Si se sobrescribe la ruta del archivo a firmar. El valor por defecto es false. | |
| --sha1 | -1 | No | Habilita la firma con algoritmo SHA1 (para compatibilidad con sistemas antiguos). |
| --sha2 | -2 | No | Habilita la firma con algoritmo SHA256 (estándar moderno, recomendado). |
| --nest | No | Si se realiza una firma anidada. Cuando el archivo ya tiene una firma, --nest=true (por defecto) conserva la firma original y añade una nueva; false elimina la firma anterior. Comparación de efectos: ![]() | |
| --timestamp | No | URL del servidor de sellado de tiempo utilizado para la firma SHA1. Establecer como cadena vacía "" para deshabilitar. | |
| --timestamp-rfc3161 | No | URL del servidor de sellado de tiempo RFC 3161 utilizado para la firma SHA256. Establecer como cadena vacía "" para deshabilitar. | |
| --desc | -n | No | Información de descripción del programa. Esta información se incrusta en la firma y puede mostrarse en avisos de seguridad del sistema como el siguiente: ![]() |
| --url | -u | No | Enlace de información oficial del programa. |
| --verify | No | Verifica inmediatamente si la firma del archivo es válida después de firmar. | |
| --dry-run | No | Modo de prueba. En este modo se utiliza un certificado autofirmado para verificar el proceso de firma; la clave de acceso y el número de suscripción correspondientes se pueden rellenar arbitrariamente. |
Acerca de los parámetros booleanos
Para los parámetros que aceptan valores true/false (como --sha1, --nest), se debe usar el formato parámetro=valor; no se admite la separación por espacios.
- Correcto: --sha1=true --sha2=false
- Incorrecto: --sha1 true --sha2 false

