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 conservar la identidad del paquete para mantener la experiencia de actualización.

Requisitos

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

Tutorial

Se trata de instrucciones 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, como 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á a fin de firmar el artefacto. Asígnele el nombre que quiera, como 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. Firma del catálogo con el certificado antiguo
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 este paso. Puede crear varios artefactos, pero la plataforma admite actualmente hasta 5.

Nota:

Se recomienda realizar la marca de tiempo en el archivo de catálogo. Si el catálogo no tiene marca de tiempo, el artefacto no podrá usarse en el momento en que expire el certificado anterior.

Creación del paquete

  1. Cree un archivo de puente de publicador para indicar a makeappx.exe qué artefactos usar. Este archivo es similar al archivo de asignación. Asígnele el nombre que quiera, como 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 de ellos para ir a Publisher1->Publisher2 y el otro para Publisher2->Publisher3, primero debe mostrar el de Publisher1->Publisher2.

  1. Llame a makeappx.exe con la marca /pb para que apunte al archivo de puente del publicador:
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
  1. Firma del paquete con el nuevo certificado
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix

Ahora tiene un paquete que cuenta con los artefactos almacenados dentro de él y 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.

  • Todavía tendrá que instalar el certificado antiguo (recomendado con marca de tiempo) en la máquina para que la plataforma instale el paquete que firmó 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 lotes MSIX.