Identité persistante MSIX
Cette fonctionnalité permet de signer des packages avec un nouveau certificat tout en conservant l’expérience de mise à jour de l’application. En d’autres termes, cela permet au package de conserver son ancienne identité de package dans la plateforme sans avoir à signer avec l’ancien certificat (d’origine). À compter de Windows Insider Preview build 22000, un artefact doit être créé pour afficher la relation entre l’ancien certificat et le nouveau certificat utilisé pour la signature. Vous trouverez ci-dessous une explication détaillée de la façon de conserver l’identité du package pour maintenir l’expérience de mise à jour.
Configuration requise
- Obtenez MakeAppx.exe via le Kit de développement logiciel (SDK) Windows. Cette fonctionnalité est actuellement disponible dans le Kit de développement logiciel (SDK) Windows Preview 22000
- Obtenez SignTool.exe via le Kit de développement logiciel (SDK) Windows. Cette fonctionnalité est actuellement disponible dans le Kit de développement logiciel (SDK) Windows Preview 22000
- Ancien certificat (CN=Ancien) utilisé pour signer le package d’origine
- Nouveau certificat (CN=Nouveau) qui sera utilisé pour signer le package
Procédure
Il s’agit d’une instruction pas à pas sur la façon de signer votre package avec le nouveau certificat tout en conservant l’identité du package.
Créer l’artefact
- Écrivez l’artefact XML détaillant les anciens et les nouveaux éditeurs. Nommez-le comme vous le souhaitez, artifact.xml :
<?xml version="1.0" encoding="UTF-8"?>
<Publisher xmlns="http://schemas.microsoft.com/appx/publisherbridging/2021" Old="CN=Old" New="CN=New" />
- Écrivez un fichier de définition de catalogue (CDF) pour créer le catalogue qui sera utilisé pour signer l’artefact. Nommez-le comme vous le souhaitez, artifact.cdf :
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256
[CatalogFiles]
<HASH>artifact.xml=artifact.xml
- Exécutez makecat.exe sur ce CDF. Il crée le fichier spécifié dans celui-ci
makecat.exe artifact.cdf
- Signer le catalogue à l’aide de l’ancien certificat
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat
À ce stade, vous devez uniquement conserver les fichiers XML et CAT après cela. Vous pouvez créer plusieurs artefacts, mais la plateforme en prend actuellement en charge jusqu’à 5.
Notes
Nous vous recommandons d’horodatager votre fichier catalogue. Si le catalogue n’est pas horodaté, l’artefact devient inutile au moment où l’ancien certificat expire.
Créer le package
- Créez un fichier de pontage d’éditeur pour indiquer makeappx.exe les artefacts à utiliser. Ce fichier est semblable au fichier de mappage. Nommez-le comme vous le souhaitez, artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"
Chaque ligne doit contenir une paire de chemins de fichiers XML et CAT. Les artefacts doivent être classés au fur et à mesure de leur application. Si vous avez deux artefacts pour passer à Publisher1-Publisher2> et un autre pour Publisher2-Publisher3>, vous devez d’abord répertorier celui pour Publisher1-Publisher2>
- Appelez makeappx.exe avec l’indicateur /pb pour pointer vers le fichier de pontage de l’éditeur :
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
- Signer votre package à l’aide du nouveau certificat
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix
Vous disposez maintenant d’un package contenant le ou les artefacts stockés à l’intérieur et signés avec le nouveau certificat. Vous pouvez déployer le package comme n’importe quel autre package MSIX.
Considérations
Nous vous recommandons d’horodatage du catalogue. Pour ce faire, vous devez ajouter ces arguments dans l’appel à signtool avant le chemin d’accès au catalogue : /td SHA256 /tr
Vous devez toujours installer l’ancien certificat (recommandé avec timestamp) sur l’ordinateur pour que la plateforme installe le package qui a été signé par le nouveau certificat.
Pour tirer parti de cette fonctionnalité, vous devez le faire avant l’expiration de l’ancien certificat.
Cette fonctionnalité fonctionne pour les packages MSIX et les bundles MSIX