Compartilhar via


Identidade persistente do MSIX

Esse recurso permite a capacidade de assinar pacotes com um novo certificado enquanto ainda mantém a experiência de atualização do aplicativo. Em outras palavras, isso permite que o pacote mantenha sua identidade de pacote antiga na plataforma sem ter a necessidade de assinar com o certificado antigo (original). A partir do Windows Insider Preview Build 22000, um artefato precisará ser criado para mostrar a relação entre o certificado antigo e o novo certificado que está sendo usado para assinatura. Abaixo está uma explicação passo a passo de como persistir com a identidade do pacote para manter a experiência de atualização.

Requisitos

  • Obtenha o MakeAppx.exe por meio do SDK do Windows. Esse recurso está atualmente disponível no Windows SDK Preview 22000
  • Obtenha SignTool.exe por meio do SDK do Windows. Esse recurso está atualmente disponível no Windows SDK Preview 22000
  • O certificado antigo (CN=Old) que foi usado para assinar o pacote original
  • O novo certificado (CN=New) que será usado para assinar o pacote

Passo a passo

Esta é uma instrução passo a passo sobre como assinar seu pacote com o novo certificado, mantendo a identidade do pacote.

Criar o artefato

  1. Escreva o artefato XML detalhando os editores antigos e novos. Nomeie-o como quiser, artefato.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Publisher xmlns="http://schemas.microsoft.com/appx/publisherbridging/2021" Old="CN=Old" New="CN=New" />
  1. Escreva um arquivo de definição de catálogo (CDF) para criar o catálogo que será usado para assinar o artefato. Nomeie-o como quiser, artifact.cdf:
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. Execute makecat.exe neste CDF. Ele criará o arquivo especificado nele
makecat.exe artifact.cdf
  1. Assinar o catálogo usando o certificado antigo
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat

Neste ponto, você só precisa manter os arquivos XML e CAT depois disso. Você pode criar vários artefatos, no entanto, a plataforma atualmente suporta até 5.

Observação

Recomendamos que você carimbe o carimbo de data/hora do arquivo de catálogo. Se o catálogo não tiver carimbo de data/hora, o artefato se tornará inútil no momento em que o certificado antigo expirar.

Criar o pacote

  1. Crie um arquivo de ponte do editor para informar ao makeappx.exe quais artefatos usar. Esse arquivo é como o arquivo de mapeamento. Nomeie-o como quiser, artefatos.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"

Cada linha deve conter um par de caminhos de arquivo XML e CAT. Os artefatos devem ser ordenados à medida que são aplicados. Se você tiver dois artefatos, um para o Publisher1-Publisher2 e outro para o Publisher2-Publisher3, liste primeiro o do Publisher1-Publisher2>>>

  1. Chame makeappx.exe com sinalizador /pb para apontar para o arquivo de ponte do editor:
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
  1. Assinar seu pacote usando o novo certificado
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix

Agora você tem um pacote que tem o(s) artefato(s) armazenado(s) dentro dele e foi assinado com o novo certificado. Você pode implantar o pacote como qualquer outro pacote MSIX.

Considerações

  • Recomendamos que o catálogo tenha carimbo de data/hora. Para fazer isso, você precisaria adicionar esses argumentos na chamada para signtool antes do caminho para o catálogo: /td SHA256 /tr

  • Você ainda precisará instalar o certificado antigo (recomendado com carimbo de data/hora) na máquina para que a plataforma instale o pacote que foi assinado pelo novo certificado.

  • Para aproveitar esse recurso, você precisará fazer isso antes que o certificado antigo expire.

  • Esse recurso funciona para pacotes MSIX e pacotes MSIX