Compartir a través de


Identidad persistente de MSIX

Esta característica permite firmar paquetes con un nuevo certificado mientras 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 necesidad de firmar con el certificado anterior (original). A partir de la compilación 22000 de Windows Insider Preview, es necesario crear un artefacto para mostrar la relación entre el certificado anterior y el nuevo certificado que se usa para firmar. A continuación se muestra una explicación paso a paso de cómo mantener la identidad del paquete para asegurar la experiencia de actualización.

Requisitos

  • Obtenga MakeAppx.exe a través del SDK de Windows. Esta característica está disponible actualmente en Windows SDK Preview 22000
  • Obtenga SignTool.exe a través del SDK de Windows. Esta característica está disponible actualmente en Windows SDK Preview 22000
  • El certificado antiguo (CN=Old) que se usó para firmar el paquete original
  • 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ígnele el nombre que 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ígnele el nombre que desee, por ejemplo, artifact.cdf.
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. Ejecute makecat.exe en este 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 conservar los archivos XML y CAT después de esto. Sin embargo, puede crear varios artefactos, pero la plataforma admite actualmente hasta 5.

Nota:

Recomendamos que ponga una marca de tiempo en el archivo de catálogo. Si el catálogo no está marcado con una marca de tiempo, el artefacto se vuelve inútil en el momento en que el certificado anterior expira.

Creación del paquete

  1. Cree un archivo de puente de editor para indicar a makeappx.exe qué artefactos debe utilizar. Este archivo es similar al archivo de mapas. Asígnele el nombre que 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 en el orden en que se aplican. Si tiene dos artefactos, uno para Editor1->Editor2, y otro para Editor2->Editor3, debe listar primero el de Editor1->Editor2

  1. Llame a makeappx.exe con la marca /pb para apuntar al archivo puente del editor:
makeappx.exe pack /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 el/los artefacto(s) almacenados en su interior y se ha 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

  • Todavía tendrá que instalar el certificado antiguo (recomendado con marca de tiempo) en la máquina para que la plataforma instale el paquete firmado por el nuevo certificado.

  • Para aprovechar esta característica, deberá hacerlo antes de que el certificado anterior haya expirado.

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