Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SignTool es una herramienta de línea de comandos que se usa para firmar digitalmente un paquete de aplicación o un lote con un certificado. El usuario puede crear el certificado (con fines de prueba) o emitirlo una empresa (para su distribución). La firma de un paquete de aplicación proporciona al usuario la comprobación de que los datos de la aplicación no se han modificado después de que se firmó, al mismo tiempo que confirma la identidad del usuario o la empresa que lo firmó. SignTool puede firmar paquetes y paquetes de aplicaciones cifrados o sin cifrar.
Importante
Si usó Visual Studio para desarrollar la aplicación, se recomienda usar el asistente de Visual Studio para crear y firmar el paquete de la aplicación. Para obtener más información, consulta Empaquetar una aplicación para UWP con Visual Studio y Empaquetar una aplicación de escritorio desde código fuente mediante Visual Studio.
Para obtener más información sobre la firma de código y los certificados en general, vea Introducción a la firma de código.
Prerrequisitos
Una aplicación empaquetada
Para obtener más información sobre cómo crear manualmente un paquete de aplicación, consulte Creación de un paquete de aplicación con la herramienta MakeAppx.exe.Un certificado de firma válido
Para obtener más información sobre cómo crear o importar un certificado de firma válido, consulte Creación o importación de un certificado para la firma de paquetes.SignTool.exe
En función de la ruta de instalación del SDK, aquí es donde SignTool está en su PC Windows 10:- x86: C:\Archivos de Programa (x86)\Windows Kits\10\bin\<SDK versión>\x86\SignTool.exe
- x64: C:\Archivos de programa (x86)\Windows Kits\10\bin\<versión del sdk>\x64\SignTool.exe
Uso de SignTool
SignTool se puede usar para firmar archivos, comprobar firmas o marcas de tiempo, quitar firmas, etc. Para firmar un paquete de aplicación, nos centraremos en el comando sign . Para obtener información completa sobre SignTool, consulte la página de referencia de SignTool .
Determinar algoritmo hash
Al usar SignTool para firmar el paquete o lote de la aplicación, el algoritmo hash usado en SignTool debe ser el mismo algoritmo que usó para empaquetar la aplicación. Por ejemplo, si usó MakeAppx.exe para crear el paquete de la aplicación con la configuración predeterminada, debe especificar SHA256 al usar SignTool , ya que es el algoritmo predeterminado usado por MakeAppx.exe.
Para averiguar qué algoritmo hash se usó al empaquetar la aplicación, extraiga el contenido del paquete de la aplicación e inspeccione el archivo AppxBlockMap.xml. Para obtener información sobre cómo desempaquetar o extraer un paquete de aplicación, consulte Extracción de archivos de un paquete o agrupación. El método hash está en el elemento BlockMap y tiene este formato:
<BlockMap xmlns="http://schemas.microsoft.com/appx/2010/blockmap"
HashMethod="http://www.w3.org/2001/04/xmlenc#sha256">
En esta tabla se muestra cada valor HashMethod y su algoritmo hash correspondiente:
Valor del método Hash | Algoritmo hash |
---|---|
http://www.w3.org/2001/04/xmlenc#sha256 | SHA256 |
http://www.w3.org/2001/04/xmldsig-more#sha384 | SHA384 |
http://www.w3.org/2001/04/xmlenc#sha512 | SHA512 |
Nota:
Dado que el algoritmo predeterminado de SignTool es SHA1 (no disponible en MakeAppx.exe), siempre debe especificar un algoritmo hash al usar SignTool.
Firmar el paquete de la aplicación
Una vez que tenga todos los requisitos previos y haya determinado qué algoritmo hash se usó para empaquetar la aplicación, estará listo para firmarla.
La sintaxis general de la línea de comandos para la firma del paquete SignTool es:
SignTool sign [options] <filename(s)>
El certificado usado para firmar la aplicación debe ser un archivo .pfx o estar instalado en un almacén de certificados.
Para firmar el paquete de la aplicación con un certificado de un archivo .pfx, use la sintaxis siguiente:
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.msix
Tenga en cuenta que la /a
opción permite a SignTool elegir automáticamente el mejor certificado.
Si el certificado no es un archivo .pfx, use la sintaxis siguiente:
SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.msix
Como alternativa, puede especificar el hash SHA1 del certificado deseado en lugar de <Nombre de certificado> mediante esta sintaxis:
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.msix
Para obtener más ejemplos, vea Usar SignTool para firmar un archivo.
Tenga en cuenta que algunos certificados no usan una contraseña. Si el certificado no tiene una contraseña, omita "/p <Su contraseña>" de los comandos de ejemplo.
Una vez que el paquete de la aplicación esté firmado con un certificado válido, estará listo para cargar el paquete en la Tienda. Para obtener más instrucciones sobre cómo cargar y enviar aplicaciones a la Tienda, consulta Envíos de aplicaciones.