Ir al contenido

Cómo firmar digitalmente su archivo EXE (firma digital)

Cuando firma digitalmente su archivo EXE de libro independiente, garantiza a los usuarios finales que el archivo es auténtico y no ha sido manipulado. Este proceso, también conocido como firma de código, utiliza la tecnología Microsoft Authenticode® para verificar que el código procede de un editor de confianza.

Windows verificando la firma digital Authenticode de un archivo EXE de libro firmado

XLS Padlock simplifica el proceso de firma de código gestionando internamente los pasos necesarios.

Advertencia de seguridad de Windows que muestra un editor no identificado para un archivo EXE sin firmar

Cómo obtener un certificado de firma de código

Section titled “Cómo obtener un certificado de firma de código”

Para firmar su aplicación, necesita un Code Signing Certificate válido de una autoridad de certificación (CA) de confianza como Sectigo o Digicert. Otros tipos de certificado, como SSL/TLS, no son compatibles.

Desde el 1 de junio de 2023, todas las claves privadas de los nuevos certificados de firma de código deben almacenarse en hardware seguro, como un token USB compatible con FIPS 140-2 Level 2 o un módulo de seguridad de hardware (HSM). Esto refuerza la seguridad al evitar el robo de claves. XLS Padlock funciona sin problemas con los certificados basados en tokens; solo asegúrese de que el token esté conectado a su ordenador cuando compile su aplicación.

Configurar la firma de código en XLS Padlock

Section titled “Configurar la firma de código en XLS Padlock”

En la interfaz de XLS Padlock, vaya a la pestaña Security -> EXE Code Signing. Para habilitar la firma, elija su Code Signing Method preferido:

  • PFX File: Utiliza un certificado almacenado en un archivo .pfx (o .p12). Este es un método heredado para certificados antiguos. Introduzca la ruta en el campo PFX File Path o haga clic en el botón de exploración situado junto a él, y luego introduzca la contraseña del certificado en Associated Password (if any).
  • Certificate Subject Name: Localiza el certificado en el almacén de certificados de Windows por su nombre de sujeto (Subject Name). Este es un método habitual para certificados en tokens de hardware.
  • Certificate Thumbprint: Localiza el certificado en el almacén de certificados de Windows por su huella digital única (Thumbprint, un hash SHA-1). A menudo es el método más fiable.
  • SignTool Commands: Un método avanzado que le permite proporcionar comandos personalizados para la utilidad SignTool.exe de Microsoft, ofreciendo la máxima flexibilidad. Consulte los marcadores de comando a continuación.
  • Azure Artifact Signing (formerly Trusted Signing): Firma su aplicación con el servicio basado en la nube de Microsoft. Consulte nuestro tutorial de Azure Artifact Signing para la configuración inicial, y la opción Exclude credentials a continuación si la firma falla después de az login.
  • JSign: Firma su aplicación con la herramienta de código abierto JSign, que requiere un entorno de ejecución Java (JRE o JDK) en el PATH. Defina la ruta a jsign.jar en Global Preferences y, a continuación, introduzca un comando JSign por línea, utilizando los mismos marcadores de comando que SignTool Commands.

Marcadores de comando para SignTool Commands y JSign

Section titled “Marcadores de comando para SignTool Commands y JSign”

Con los métodos SignTool Commands y JSign, escriba un comando por línea. Antes de ejecutar cada comando, XLS Padlock sustituye dos marcadores:

MarcadorSustituido por
{$OUTPUTFILE$}La ruta completa del archivo EXE que se va a firmar.
{$OUTPUTFOLDER$}La ruta de la carpeta que contiene el archivo EXE, sin barra invertida final.

Ponga entre comillas las rutas que puedan contener espacios. Para hacer referencia a un archivo junto al archivo EXE, agregue usted mismo la barra invertida, por ejemplo "{$OUTPUTFOLDER$}\my-metadata.json". Se requiere XLS Padlock 2026.2 o posterior para que {$OUTPUTFOLDER$} se sustituya cuando va seguido directamente de una barra invertida o una comilla. El comando SignTool predeterminado, definido en Global Preferences, es:

sign /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a /v "{$OUTPUTFILE$}"

Excluir credenciales (Azure Artifact Signing)

Section titled “Excluir credenciales (Azure Artifact Signing)”

Cuando XLS Padlock firma con el método integrado Azure Artifact Signing, la herramienta de firma de Azure prueba varios tipos de credenciales uno tras otro, en un orden fijo, hasta que uno de ellos tiene éxito. En algunos ordenadores, un tipo de credencial probado antes de la credencial de Azure CLI falla e interrumpe toda la operación de firma, aunque az login se haya realizado correctamente y el perfil del certificado sea válido. El registro de compilación muestra entonces un error de autenticación como MsalCachePersistenceException: Persistence check failed.

El campo opcional Exclude credentials (one per line, optional), disponible desde XLS Padlock 2026.2, enumera los tipos de credenciales que se deben omitir. Haga clic en Exclude all except Azure CLI para rellenar la configuración recomendada para un ordenador de desarrollo autenticado con az login: todos los tipos de credenciales excepto AzureCliCredential.

Página EXE Code Signing con el método Azure Artifact Signing seleccionado, mostrando el campo Exclude credentials y el botón Exclude all except Azure CLI

Los nombres aceptados son los nueve tipos de credenciales documentados por Microsoft: ManagedIdentityCredential, WorkloadIdentityCredential, SharedTokenCacheCredential, VisualStudioCredential, VisualStudioCodeCredential, AzureCliCredential, AzurePowerShellCredential, AzureDeveloperCliCredential y InteractiveBrowserCredential. Los nombres se comprueban al iniciar la firma (sin distinguir mayúsculas y minúsculas; se ignoran las líneas en blanco y los duplicados). Un nombre desconocido detiene la firma con un error, ya que de lo contrario la herramienta de firma lo ignoraría silenciosamente. Deje el campo vacío para mantener el comportamiento predeterminado: los metadatos de firma serán entonces idénticos a los de versiones anteriores. El valor se guarda con su proyecto.

XLS Padlock escribe el archivo de metadatos de firma (sign-metadata.json) junto al archivo EXE de salida en cada firma. No edite ese archivo manualmente: sus cambios se sobrescribirían en la siguiente compilación.

  • Firma manual: Haga clic en Sign EXE File Now para firmar de inmediato el último archivo EXE compilado.
  • Firma automática: Marque Automatically sign my EXE file para que XLS Padlock firme el EXE cada vez que compile su aplicación.