Persistente MSIX-Identität

Dieses Feature ermöglicht das Signieren von Paketen mit einem neuen Zertifikat, während die Updateerfahrung der App beibehalten wird. Anders ausgedrückt: Dadurch kann das Paket seine alte Paketidentität auf der Plattform beibehalten, ohne sich mit dem alten (ursprünglichen) Zertifikat signieren zu müssen. Ab Windows Insider Preview Build 22000 muss ein Artefakt erstellt werden, um die Beziehung zwischen dem alten und dem neuen Zertifikat, das zum Signieren verwendet wird, zu zeigen. Im Folgenden finden Sie eine ausführliche Erläuterung, wie Sie die Paketidentität beibehalten können, um die Updateerfahrung zu gewährleisten.

Anforderungen

  • Abrufen MakeAppx.exe über das Windows SDK. Dieses Feature ist derzeit in Windows SDK Preview 22000 verfügbar.
  • Abrufen SignTool.exe über das Windows SDK. Dieses Feature ist derzeit in Windows SDK Preview 22000 verfügbar.
  • Das alte Zertifikat (CN=Old), das zum Signieren des ursprünglichen Pakets verwendet wurde
  • Das neue Zertifikat (CN=New), das zum Signieren des Pakets verwendet wird

Exemplarische Vorgehensweise

Dies ist eine schrittweise Anleitung zum Signieren Ihres Pakets mit dem neuen Zertifikat unter Beibehaltung der Paketidentität.

Erstellen des Artefakts

  1. Schreiben Sie das XML-Artefakt, das die alten und neuen Verleger detailliert erläutert. Nennen Sie es nach Benamen, 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. Schreiben Sie eine Katalogdefinitionsdatei (Catalog Definition File, CDF), um den Katalog zu erstellen, der zum Signieren des Artefakts verwendet wird. Nennen Sie sie nach Benamen artifact.cdf:
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. Führen makecat.exe cdf aus. Die datei angegebene Datei wird erstellt.
makecat.exe artifact.cdf
  1. Signieren des Katalogs mit dem alten Zertifikat
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat

An diesem Punkt müssen Sie die XML- und CAT-Dateien nur danach behalten. Sie können mehrere Artefakte erstellen, die Plattform unterstützt jedoch derzeit bis zu 5.

Hinweis

Es wird empfohlen, den Zeitstempel Ihrer Katalogdatei zu verwenden. Wenn der Katalog nicht mit einem Zeitstempel versehen ist, wird das Artefakt in dem Moment, in dem das alte Zertifikat abläuft, nicht mehr verwendet.

Erstellen des Pakets

  1. Erstellen Sie eine Herausgeber-Bridgingdatei, um makeappx.exe artifacts zu verwenden. Diese Datei ist wie die Zuordnungsdatei. Nennen Sie es nach Benamen, artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"

Jede Zeile muss ein Paar aus XML- und CAT-Dateipfaden enthalten. Die Artefakte müssen bei der Anwendung geordnet werden. Wenn Sie zwei Artefakte für Publisher1-Publisher2> und eins für Publisher2-Publisher3> haben, müssen Sie zuerst das für Publisher1-Publisher2 auflisten>.

  1. Rufen makeappx.exe mit dem Flag /pb auf, um auf die Herausgeber-Bridgingdatei zu verweisen:
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
  1. Signieren Ihres Pakets mit dem neuen Zertifikat
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix

Nun verfügen Sie über ein Paket, in dem die Artefakte gespeichert und mit dem neuen Zertifikat signiert wurden. Sie können das Paket wie jedes andere MSIX-Paket bereitstellen.

Überlegungen

  • Es wird empfohlen, den Katalog mit einem Zeitstempel zu versehen. Hierzu müssen Sie diese Argumente im Aufruf von signtool vor dem Pfad zum Katalog hinzufügen: /td SHA256 /tr

  • Sie müssen weiterhin das alte Zertifikat (empfohlen mit Zeitstempel) auf dem Computer installieren, damit die Plattform das Paket installieren kann, das vom neuen Zertifikat signiert wurde.

  • Um dieses Feature nutzen zu können, müssen Sie dies tun, bevor das alte Zertifikat abgelaufen ist.

  • Dieses Feature funktioniert sowohl für MSIX-Pakete als auch für MSIX-Pakete.