Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A assinatura de pacotes de aplicações é um passo obrigatório no processo de criação de um pacote MSIX que pode ser implementado. O Windows exige que os pacotes MSIX sejam assinados com um certificado de assinatura de código válido.
Para instalar com sucesso uma aplicação Windows, o pacote não só tem de ser assinado, mas também confiável no dispositivo. Isso significa que o certificado deve ser encadeado a uma das raízes confiáveis no dispositivo. Por defeito, o Windows confia nos certificados da maioria das autoridades certificadoras que fornecem certificados de assinatura de código.
Além disso, se estiveres a criar um bundle MSIX, não é necessário assinar todos os pacotes do bundle individualmente. Apenas o pacote precisa de ser assinado; a assinatura cobre os pacotes dentro do pacote.
Opções de assinatura
Escolha uma abordagem de assinatura com base no seu cenário:
| Cenário | Option | Custo |
|---|---|---|
| Desenvolvimento e testes locais | Certificado autoassinado | Gratuito |
| Distribuição no ambiente de produção (recomendada) | Azure Assinatura de Artefatos (anteriormente Assinatura Confiável) | Básico: ~$10/mês |
| Distribuição de produção (alternativa) | Certificado de assinatura de código OV de uma Autoridade Certificadora (CA) | $300–500/ano |
| Distribuição na Microsoft Store | Assinado pela Loja no momento da submissão | Gratuito |
Observação
Azure Assinatura de Artefactos (anteriormente conhecida como Assinatura Confiável) é o serviço gerido de assinatura de código da Microsoft e é a opção recomendada para assinatura MSIX em produção. Principais características:
- Reputação baseada em identidade: A reputação está ligada à identidade verificada do editor em vez de um certificado específico, acumulando-se assim ao longo das compilações. No entanto, como em toda a distribuição fora da Store, novas aplicações continuarão a exibir avisos do SmartScreen até que haja histórico suficiente de downloads acumulado — geralmente, isso leva várias semanas. Consulte a reputação do SmartScreen para desenvolvedores de Windows aplicações.
- Certificados de curta duração: Um novo certificado é emitido diariamente, e cada certificado permanece válido por cerca de 3 dias, permitindo a revogação com precisão temporal, se necessário.
-
CI/CD ready: Suporta GitHub Actions (
azure/trusted-signing-action) e Azure DevOps prontos a utilizar.
Elegibilidade para certificados de Public Trust: Disponível para organizações nos EUA, Canadá, União Europeia e Reino Unido, bem como para promotores individuais nos EUA e Canadá. As organizações devem ter um histórico fiscal verificável de três ou mais anos. Ver Informação importante para validação de identidade.
Assinatura com SignTool requer configuração extra: O SignTool funciona com Assinatura de Artefactos apenas quando utiliza as Ferramentas de Cliente de Assinatura de Artefactos, que incluem o plugin dlib obrigatório e o tempo de execução .NET 8. Deve também fornecer um metadata.json ficheiro com o endpoint da sua conta e o perfil do certificado. Uma invocação padrão do SignTool do SDK do Windows, por si só, não será suficiente para assinatura de artefactos. A instalação mais fácil é:
winget install -e --id Microsoft.Azure.ArtifactSigningClientTools
Consulte Configurar o SignTool com Assinatura de Artefatos para ter a configuração completa.
AzureSignTool é uma ferramenta comunitária separada para assinar com certificados armazenados em Azure Key Vault. Não suporta a Assinatura de Artefactos — os dois são serviços distintos. Para assinatura baseada em Azure Key Vault em Visual Studio, veja pacotes Sign com Azure Key Vault.
WinApp CLI
A linha de comando WinApp fornece comandos convenientes para assinatura de desenvolvimento:
-
winapp cert generate— criar um certificado autoassinado para desenvolvimento -
winapp sign— assinar um pacote MSIX ou executável com um certificado -
winapp tool signtool— acede diretamente ao SignTool a partir do SDK Windows
Temas de assinatura
| Tópico | Descrição |
|---|---|
| Pré-requisitos para assinatura | Pré-requisitos para assinar um pacote de aplicação. |
| Usando o SignTool | Como usar o SignTool do SDK do Windows para assinar um pacote de aplicações. |
| Assine pacotes com Azure Key Vault | Como assinar pacotes usando um certificado armazenado no Azure Key Vault do Visual Studio. |
| Assinar um pacote MSIX com assinatura do Device Guard | Como assinar a sua aplicação com a assinatura do Device Guard. |
| Criando pacotes não assinados para teste | Como criar um pacote MSIX sem assinatura para testes. |
| Azure Assinatura de Artefatos | O serviço de assinatura gerida da Microsoft (anteriormente Assinatura Confiável) para pacotes MSIX de produção. |
Marcação de hora
É altamente recomendável que o carimbo de data/hora seja usado ao assinar seu aplicativo com um certificado. O carimbo de data/hora preserva a assinatura, permitindo que o pacote do aplicativo seja aceito pela plataforma de implantação do aplicativo mesmo após a expiração do certificado. No momento da inspeção do pacote, o carimbo de data/hora permite que a assinatura do pacote seja validada em relação ao momento em que foi assinada. Isso permite que os pacotes sejam aceitos mesmo depois que o certificado não for mais válido. Os pacotes que não têm carimbo temporal serão avaliados com base na hora atual e, se o certificado deixar de ser válido, o Windows não aceitará o pacote.
A seguir estão os diferentes cenários em torno da assinatura de aplicativo com/sem carimbo de data/hora:
| Cenário | A aplicação é assinada sem carimbo de data | A aplicação é assinada com marca temporal. |
|---|---|---|
| O certificado é válido | O aplicativo será instalado | O aplicativo será instalado |
| O certificado é inválido (caducado) | O aplicativo não será instalado | A aplicação será instalada uma vez que a autenticidade do certificado for verificada no momento da assinatura pela autoridade de autenticação com carimbo de data/hora. |
Observação
Se o aplicativo for instalado com êxito em um dispositivo, ele continuará a ser executado mesmo após a expiração do certificado, independentemente de estar com carimbo de data/hora ou não.
Garantia da Integridade do Pacote
Para além de garantir que apenas aplicações de confiança estão instaladas num dispositivo, um benefício adicional de assinar um pacote MSIX é que permite ao Windows impor a integridade do seu pacote e do seu conteúdo após a sua implementação num dispositivo. Ao fazer encadeamento com o AppxBlockMap.xml e o AppxSignature.p7x dentro de um pacote assinado, o Windows consegue realizar verificações de validação da integridade de um pacote e do seu conteúdo durante a execução e nas análises do Windows Defender. Se um pacote for considerado adulterado, o Windows bloqueará o lançamento da aplicação e iniciará um fluxo de trabalho de remediação para reparar ou reinstalar o pacote. Para pacotes não distribuídos através do Microsoft Store, a integridade do pacote é aplicada se o pacote declarar o elemento uap10:PackageIntegrity e for implementado em versões Windows 2004 e posteriores. Abaixo está um exemplo de declaração de aplicação da integridade do pacote no AppxManifest.xml:
<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
IgnorableNamespaces="uap10">
...
<Properties>
<uap10:PackageIntegrity>
<uap10:Content Enforcement="on" />
</uap10:PackageIntegrity>
</Properties>
...
</Package>
Modo de dispositivo
O Windows 10 permite aos utilizadores selecionar o modo para executar o dispositivo na aplicação Definições. Os modos são aplicações da Microsoft Store, aplicações Sideload e modo Developer.
Microsoft Store apps é o mais seguro, pois só permite a instalação de apps a partir do Microsoft Store. As aplicações na Microsoft Store passam por um processo de certificação para garantir que são seguras para uso.
As aplicações de carregamento lateral e o modo de desenvolvedor são mais permissivos com as aplicações assinadas por outros certificados, desde que esses certificados sejam confiáveis e encadeados a uma das raízes confiáveis no dispositivo. Só selecione o modo Desenvolvedor se for programador e estiver a criar ou depurar aplicações do Windows 10. Mais informações sobre o modo de desenvolvedor e o que ele fornece podem ser encontradas aqui.
Observação
A partir do Windows 10 versão 2004, a opção Sideload está ativada por predefinição. Como resultado, o modo de desenvolvedor agora é uma opção alternável. As empresas ainda podem desativar o Sideload via política.