Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
SignTool é uma ferramenta de linha de comando usada para assinar digitalmente um pacote ou pacote de aplicativo com um certificado. O certificado pode ser criado pelo usuário (para fins de teste) ou emitido por uma empresa (para distribuição). A assinatura de um pacote de aplicativo fornece ao usuário a verificação de que os dados do aplicativo não foram modificados depois que ele foi assinado, ao mesmo tempo em que confirma a identidade do usuário ou da empresa que os assinou. O SignTool pode assinar pacotes e conjuntos de aplicativos criptografados ou não criptografados.
Importante
Se você usou o Visual Studio para desenvolver seu aplicativo, é recomendável usar o assistente do Visual Studio para criar e assinar o pacote do aplicativo. Para obter mais informações, consulte Empacotar um aplicativo UWP com o Visual Studio e empacotar um aplicativo da área de trabalho do código-fonte usando o Visual Studio.
Para obter mais informações sobre assinatura de código e certificados em geral, consulte Introdução à Assinatura de Código.
Pré-requisitos
Um aplicativo empacotado
Para saber mais sobre como criar manualmente um pacote de aplicativos, consulte Criar um pacote de aplicativo com a ferramenta MakeAppx.exe.Um certificado de assinatura válido
Para obter mais informações sobre como criar ou importar um certificado de assinatura válido, consulte Criar ou importar um certificado para assinatura de pacote.SignTool.exe
Com base no caminho de instalação do SDK, é aqui que o SignTool está em seu computador Windows 10:- x86: C:\Arquivos de Programas (x86)\Windows Kits\10\bin\<sdk version>\x86\SignTool.exe
- x64: C:\Arquivos de Programas (x86)\Windows Kits\10\bin\<sdk version>\x64\SignTool.exe
Usando o SignTool
SignTool pode ser usado para assinar arquivos, verificar assinaturas ou carimbos de data/hora, remover assinaturas e muito mais. Com o objetivo de assinar um pacote de aplicativo, nos concentraremos no comando sign. Para obter informações completas sobre SignTool, consulte a página de referência SignTool .
Determinar o algoritmo de hash
Ao usar o SignTool para assinar o pacote ou conjunto do aplicativo, o algoritmo de hash usado no SignTool deve ser o mesmo algoritmo usado para empacotar seu aplicativo. Por exemplo, se você usou MakeAppx.exe para criar o pacote do aplicativo com as configurações padrão, especifique SHA256 ao usar SignTool , pois esse é o algoritmo padrão usado por MakeAppx.exe.
Para descobrir qual algoritmo de hash foi usado durante o empacotamento do aplicativo, extraia o conteúdo do pacote do aplicativo e inspecione o arquivo AppxBlockMap.xml. Para saber como desempacotar/extrair um pacote de aplicativo, consulte Extrair arquivos de um pacote ou conjunto. O método hash está no elemento BlockMap e tem este formato:
<BlockMap xmlns="http://schemas.microsoft.com/appx/2010/blockmap"
HashMethod="http://www.w3.org/2001/04/xmlenc#sha256">
Esta tabela mostra cada valor HashMethod e seu algoritmo de hash correspondente:
| Valor HashMethod | Algoritmo de 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 |
Observação
Como o algoritmo padrão do SignTool é SHA1 (não disponível em MakeAppx.exe), você sempre deve especificar um algoritmo de hash ao usar o SignTool.
Assinar o pacote do aplicativo
Depois de ter todos os pré-requisitos e determinar qual algoritmo de hash foi usado para empacotar seu aplicativo, você estará pronto para assiná-lo.
A sintaxe de linha de comando geral para assinatura do pacote SignTool é:
SignTool sign [options] <filename(s)>
O certificado usado para assinar seu aplicativo deve ser um arquivo .pfx ou ser instalado em um repositório de certificados.
Para assinar o pacote do aplicativo com um certificado de um arquivo .pfx, use a seguinte sintaxe:
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
Observe que a opção permite que o /aSignTool escolha o melhor certificado automaticamente.
Se o certificado não for um arquivo .pfx, use a seguinte sintaxe:
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, você pode especificar o hash SHA1 do certificado desejado em vez de Nome do <Certificado> usando esta sintaxe:
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.msix
Para obter mais exemplos, consulte Como usar SignTool para assinar um arquivo
Observe que alguns certificados não usam uma senha. Se o certificado não tiver uma senha, omita "/p <Sua Senha>" dos comandos de exemplo.
Depois que o pacote do aplicativo for assinado com um certificado válido, você estará pronto para carregar seu pacote na Loja. Para obter mais diretrizes sobre como carregar e enviar aplicativos para a Loja, consulte envios de aplicativo.