Identidad persistente de MSIX

Esta característica permite firmar paquetes con un nuevo certificado mientras se mantiene la experiencia de actualización de la aplicación. En otras palabras, esto permite que el paquete conserve su identidad de paquete anterior en la plataforma sin tener que firmar con el certificado anterior (original). A partir Windows Insider Preview compilación 22000, será necesario crear un artefacto para mostrar la relación entre el certificado antiguo y el nuevo certificado que se usa para firmar. A continuación se muestra una explicación paso a paso de cómo conservar la identidad del paquete para mantener la experiencia de actualización.

Requisitos

  • Obtenga MakeAppx.exe a través del SDK Windows. Esta característica está disponible actualmente en la versión preliminar Windows SDK.
  • Obtención SighTool.exe mediante el SDK Windows
  • El certificado antiguo (CN=Old) que se usó para firmar el paquete original
  • El nuevo certificado (CN=New) que se usará para firmar el paquete

Tutorial

Se trata de una instrucción paso a paso sobre cómo firmar el paquete con el nuevo certificado mientras se mantiene la identidad del paquete.

Creación del artefacto

  1. Escriba el artefacto XML que detalla los publicadores antiguos y nuevos. Asíóntelo como quiera, artifact.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Publisher xmlns=http://schemas.microsoft.com/appx/publisherbridging/2021 Old="CN=Old" New="CN=New" />
  1. Escriba un archivo de definición de catálogo (CDF) para crear el catálogo que se usará para firmar el artefacto. Asínte el nombre que quiera, artifact.cdf:
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. Ejecute makecat.exe en esta CDF. Creará el archivo especificado en él.
makecat.exe artifact.cdf
  1. Firmar el catálogo con el certificado anterior
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat

En este momento, solo tiene que mantener los archivos XML y CAT después de esto. Puede crear varios artefactos, pero la plataforma admite actualmente hasta 5.

Creación del paquete

  1. Cree un archivo de puente del publicador para makeappx.exe qué artefactos usar. Este archivo es como el archivo de asignación. Asíóntelo como quiera, artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"

Cada línea debe contener un par de rutas de acceso de archivo XML y CAT. Los artefactos deben ordenarse a medida que se aplican. Si tiene dos artefactos uno para ir a Publisher1->Publisher2 y otro para Publisher2->Publisher3, debe enumerar primero el de Publisher1->Publisher2. 2. Llame makeappx.exe con la marca /pb para que apunte al archivo de puente del publicador:

makeappx.exe /p app.msix /d .\app\ /pb artifacts.txt
  1. Firmar el paquete con el nuevo certificado
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix

Ahora tiene un paquete que tiene los artefactos almacenados en él y que se han firmado con el nuevo certificado. Puede implementar el paquete como cualquier otro paquete MSIX.

Consideraciones

  • Se recomienda que el catálogo tenga una marca de tiempo. Para ello, tendría que agregar estos argumentos en la llamada a signtool antes de la ruta de acceso al catálogo: /td SHA256 /tr

  • Tendrá que instalar el certificado anterior (recomendado con marca de tiempo) en el equipo para que la plataforma instale el paquete firmado por el nuevo certificado.

  • Esta característica funciona tanto para paquetes MSIX como para paquetes MSIX