- Puntos Clave
- Matriz de entorno
- Prerrequisitos
- Comandos y parámetros de Mage
- Usando la línea de comandos y el certificado EV
- Verificación de un manifiesto firmado
- Errores comunes
- Uso y limpieza de CI/CD
- Usando la línea de comandos y certificado autofirmado (desde nuestro portal web)
- Conclusión
- Preguntas frecuentes
Mage.exe es una herramienta de línea de comandos del sistema operativo Windows para firmar y verificar manifiestos de software. Mage Signing se utiliza principalmente para firmar manifiestos, que son archivos XML que contienen información sobre la implementación y actualización de una aplicación. Al usar mage.exe para firmar el manifiesto, los desarrolladores pueden garantizar la autenticidad e integridad de sus aplicaciones, brindando a los usuarios la seguridad de que el software no ha sido comprometido. La herramienta también permite verificar los manifiestos firmados, lo que permite a los usuarios validar el origen y la integridad de la aplicación antes de la instalación.
Firmar un archivo de manifiesto con Mage, en resumen: puedes seguir
mage -sign <file> -CertHash <fingerprint> -TimestampUri <timestamp_server>, luego verifique conmage -verify <file>Incluya siempre una marca de tiempo; sin ella, la firma deja de ser válida en el momento en que caduca el certificado de firma, independientemente de si el manifiesto en sí ha sido manipulado alguna vez.
Puntos Clave
- -CertHash debe ser la huella digital exacta del certificado que aparece en la vista de detalles del certificado, no un nombre de clave o un alias; una discrepancia en este punto es la causa más común de un fallo en el comando de firma.
- -TimestampUri requiere una conexión a Internet activa en el momento de la firma para acceder al servidor de marcas de tiempo; omitirlo es una sintaxis válida, pero la firma resultante carece de validez a largo plazo.
Matriz de entorno
| Componente | Requisito |
|---|---|
| Mage.exe, una herramienta de .NET Framework incluida con las herramientas de firma del SDK de Windows o instalada a través del componente .NET Framework de Visual Studio. | |
| . NET Framework | 4.0 o superior |
| Ruta de instalación típica | C:\Archivos de programa (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools (varía según la versión del SDK) |
| Certificado | Certificado de firma de entidad final; se admiten tanto certificados EV como autofirmados desde el portal de Encryption Consulting. |
| Almacenamiento de claves | HSM de nivel 3 FIPS 140-2 con acceso basado en proxy en la implementación de EC |
| Algoritmo de hash | sha256RSA (recomendado) o sha1RSA, configurado mediante -Algorithm |
En Encryption Consulting, contamos con amplia experiencia en estándares de cumplimiento, incluyendo HSM FIPS 140-2 Nivel 3. Priorizamos el cumplimiento de las regulaciones y estándares de la industria para su proceso de firma de paquetes. Para mejorar la seguridad, utilizamos acceso basado en proxy al HSM, lo que garantiza que su clave privada permanezca protegida contra accesos no autorizados y posibles vulneraciones. Reconocemos que cada organización tiene requisitos únicos, por lo que ofrecemos soluciones personalizadas adaptadas a sus necesidades específicas. De esta manera, proporcionamos un proceso de firma seguro que genera confianza en nuestros servicios.
Prerrequisitos
- Instale mage en su sistema.
- Instalar .NET Framework 4 o superior.
- Obtener un certificado de firma.
Mage.exe es una herramienta .NET Framework, por lo que se instalará automáticamente mientras instala .NET Framework con Visual Studio o se descargará con Windows SDK, en Herramientas de firma de Windows SDK para aplicaciones de escritorio.
Puede encontrarlo en la ruta C:\Archivos de programa (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools. Una vez que haya descargado mage.exe en su sistema, deberá configurar la variable de entorno PATH en mage.exe.

Comandos y parámetros de Mage
También puedes ver esto usando mage -help o mage -help verbose en tu CMD
| -s, -Sign [Opciones de firma] | Utiliza un par de claves o un certificado X509 para firmar un archivo. Las firmas se insertan como elementos XML dentro de los archivos. Debe estar conectado a Internet al firmar un manifiesto que especifica un -Uri de marca de tiempo . |
| -ver, -Verificar [nombre del archivo de manifiesto] | Verifica que el manifiesto esté firmado correctamente. No se puede combinar con otros comandos. |
| -a, -Algoritmo | Especifica “sha256RSA” o “sha1RSA” como el algoritmo para generar resúmenes de dependencia. |
| -ch, -CertHash | Proporciona hash de certificado o huella digital |
| -ti, -Uri de marca de tiempo | Especifique la URL de la marca de tiempo, por ejemplo: http://timestamp.digicert.com |
Usando la línea de comandos y el certificado EV
Usaremos Mage.exe para firmar un archivo
Sintaxis
signo de mago -CertHash
mago -verificar
Por ejemplo:
mage -sign CodeSignText.exe.manifest -CertHash f39dbe6bcfaa43ca39585aa40ab0a19bf29991cb -TimestampUri http://timestamp.digicert.com
Aquí,
| especifique el nombre del archivo que desea firmar o la ruta del archivo, si no está en el mismo directorio | |
| Especifique la huella digital o el hash de su certificado. Puede encontrarlo en la sección de detalles de su certificado. |

Una muestra del comando ejecutado:

Verificación de un manifiesto firmado
Después de firmar, corre mage -verify <file_name> Para confirmar la validez de la firma. Una verificación exitosa indica que la firma coincide con el certificado integrado; un fallo significa que el manifiesto nunca se firmó correctamente o se modificó después de la firma. No considere un comando de firma que no devuelve ningún error como prueba de una firma válida; verifique siempre explícitamente.
Errores comunes
| Error | Causa probable | Solución |
|---|---|---|
| Certificado no encontrado / hash no válido | -El valor de CertHash no coincide exactamente con la huella digital del certificado en su vista de detalles. | Vuelva a comprobar la huella digital directamente desde el certificado en lugar de reutilizar un valor de la memoria o de una sesión anterior. |
| El comando de firma se bloquea o expira. | -TimestampUri especificado, pero la máquina no tiene acceso a Internet saliente para llegar al servidor de marcas de tiempo. | Confirme la conectividad saliente a la URL de la marca de tiempo o verifique que un proxy no la esté bloqueando. |
| mago: comando no reconocido | La variable de entorno PATH no estaba configurada en el directorio de instalación de mage.exe. | Vuelva a verificar que la entrada PATH apunte a la carpeta Tools de la versión correcta del SDK, ya que la ruta varía según la versión del SDK. |
Uso y limpieza de CI/CD
Para la firma repetida en una canalización, proporcione el hash del certificado y la URI de la marca de tiempo como variables de canalización en lugar de codificarlos directamente en un script, y agregue el mage -verify Este paso es obligatorio inmediatamente después de la firma, de modo que la compilación falle si la firma es inválida, en lugar de continuar sin mostrar ningún error. Si se importó un certificado a un agente de compilación para realizar pruebas, elimínelo del almacén de certificados una vez que se confirme que la canalización funciona correctamente.
Usando la línea de comandos y certificado autofirmado (desde nuestro portal web)
Este método también implica aprovechar Mage (Interfaz de Línea de Comandos), que permite crear, publicar, firmar y administrar paquetes sin modificar los archivos del proyecto. Sin embargo, primero, el usuario debe generar un certificado autofirmado desde nuestro portal web. Después, convierta el certificado descargado de formato .pem a .crt para un funcionamiento más eficiente. Una vez completados estos pasos, siga estos pasos:
- Descargue nuestra Cadena de certificados Desde la pantalla "Herramientas de Firma". Descomprímalo en su equipo cliente.
- Después de eso, instale el certificado raíz en su sistema.
Pasos:
-
Haga clic en el botón INSTALAR CERTIFICADO.
-
En la ventana emergente “Asistente de importación”, seleccione Usuario actual y luego presione SIGUIENTE
-
En la ventana emergente “Almacén de certificados”, seleccione Autoridades de certificación raíz de confianza para el certificado de CA raíz y haga clic en SIGUIENTE.
-
Luego de verificar todos los detalles haga clic en FINALIZAR.
- Después de instalar la CA raíz, instale la CA emisora desde la carpeta Cadena de certificados (intermediate.crt). Siga el mismo procedimiento, excepto para instalar este certificado en Autoridades intermedias de certificación.
- Tras instalar correctamente la CA emisora, instale el certificado de entidad final (o el certificado autofirmado de nuestro portal) en su sistema. El proceso es el mismo, excepto que este certificado se instalará en el Personal tienda.
-
Ejecute el comando repairstore utilizando la huella digital de este certificado de entidad final. De esta manera:
certutil -f -repairstore -csp “Proveedor de almacenamiento de claves de consultoría de cifrado” -user “Mi”
Cuando todos estos pasos se hayan completado con éxito, intente ejecutar el comando de línea de comandos de Mage usando la huella digital de este certificado.
Sintaxis
signo de mago -CertHash
mago -verificar
Por ejemplo:
mage -sign CodeSignText.exe.manifest -CertHash f39dbe6bcfaa43ca39585aa40ab0a19bf29991cb -TimestampUri http://timestamp.digicert.com
Aquí,
| especifique el nombre del archivo que desea firmar o la ruta del archivo, si no está en el mismo directorio | |
| Especifique la huella digital o el hash de su certificado. Puede encontrarlo en la sección de detalles de su certificado. |
Una muestra de comando ejecutado

Conclusión
En el panorama digital actual, proteger las aplicaciones digitales, los archivos, los manifiestos, etc., ha sido crucial. Los desarrolladores pueden verificar la validez e integridad de sus aplicaciones y brindar a los consumidores la tranquilidad de que el producto no ha sido alterado firmando el manifiesto con "mage.exe".
Para verificar la integridad y el origen de la aplicación antes de instalarla, los usuarios también pueden usar la herramienta para verificar los manifiestos firmados. Firmar los manifiestos es esencial para preservar la seguridad y la confianza en los procedimientos de implementación de software en la plataforma Windows.
Encryption Consulting tiene como objetivo brindarle las herramientas y la orientación necesarias para crear un entorno más seguro. Sabemos lo importante que es la firma digital de archivos para protegerse contra imprevistos. Estamos comprometidos con su seguridad y le proporcionamos la información y las herramientas que necesita para proteger lo que más le importa. Contamos con una solución de firma de código para ayudarle a firmar sus aplicaciones. Puede contactarnos en [email protected] para solicitar una demostración de CodeSign Secure.
Preguntas frecuentes
¿Qué ocurre si firmo un manifiesto sin marca de tiempo?
La firma solo es válida hasta que caduque el certificado de firma, independientemente de si se ha manipulado el manifiesto. Incluya siempre -TimestampUri para que la firma siga siendo verificable en función de la fecha en que se firmó, y no de una verificación posterior.
¿El comando `mage -verify` comprueba algo más allá de la propia firma?
Verifica que la firma coincida con el contenido actual del manifiesto y que haya sido generada por el certificado referenciado. No confirma de forma independiente que el certificado en sí siga siendo de confianza o no haya sido revocado; esa comprobación se realiza por separado en la cadena de certificados.
- Puntos Clave
- Matriz de entorno
- Prerrequisitos
- Comandos y parámetros de Mage
- Usando la línea de comandos y el certificado EV
- Verificación de un manifiesto firmado
- Errores comunes
- Uso y limpieza de CI/CD
- Usando la línea de comandos y certificado autofirmado (desde nuestro portal web)
- Conclusión
- Preguntas frecuentes
