Persistente MSIX-Identität

Dieses Feature ermöglicht die Möglichkeit, Pakete mit einem neuen Zertifikat zu signieren und gleichzeitig die Updateerfahrung der App beizubehalten. 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 Zertifikat und dem neuen Zertifikat anzuzeigen, das zum Signieren verwendet wird. Im Folgenden wird schritt für Schritt erläutert, wie sie mit der Paketidentität beibehalten werden, um die Updateerfahrung aufrechtzuerhalten.

Anforderungen

  • Rufen Sie MakeAppx.exe über das Windows SDK ab. Dieses Feature ist derzeit im Windows SDK Preview 22000 verfügbar.
  • Rufen Sie SignTool.exe über das Windows SDK ab. Dieses Feature ist derzeit im 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 Herausgeber detailliert erläutert. Nennen Sie es beliebig, 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 (CDF), um den Katalog zu erstellen, der zum Signieren des Artefakts verwendet wird. Nennen Sie es beliebig, artifact.cdf:
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. Führen Sie makecat.exe auf dieser CDF aus. Die darin 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 beibehalten. Sie können mehrere Artefakte erstellen, aber die Plattform unterstützt derzeit bis zu 5.

Hinweis

Es wird empfohlen, einen Zeitstempel ihrer Katalogdatei zu erstellen. Wenn der Katalog nicht mit einem Zeitstempel versehen ist, wird das Artefakt verwendet, sobald das alte Zertifikat abläuft.

Erstellen des Pakets

  1. Erstellen Sie eine Herausgeberüberbrückungsdatei, um makeappx.exe zu informieren, welche Artefakte verwendet werden sollen. Diese Datei ähnelt der Zuordnungsdatei. Benennen Sie es nach Belieben, artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"

Jede Zeile muss ein Xml- und CAT-Dateipfadpaar enthalten. Die Artefakte müssen sortiert werden, sobald sie angewendet werden. Wenn Sie über zwei Artefakte verfügen: eines für Publisher1->Publisher2 und ein anderes für Publisher2->Publisher3, müssen Sie zuerst das für Publisher1->Publisher2 auflisten.

  1. Rufen Sie makeappx.exe mit dem Flag /pb auf, um auf die Bridgingdatei des Herausgebers zu verweisen:
makeappx.exe /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.