Behandeln von Signaturfehlern bei App-Paketen

Ein Fehler bei der App-Bereitstellung kann durch einen Fehler beim Überprüfen der digitalen Signatur des App-Pakets verursacht werden. Erfahren Sie, wie Sie diese Fehler erkennen und was Sie dagegen tun können.

Wenn Sie eine gepackte Windows-App bereitstellen, versucht Windows immer, die digitale Signatur im App-Paket zu überprüfen. Fehler bei der Bereitstellung des Pakets für den Signaturüberprüfungsblock. Aber warum das Paket nicht überprüft wurde, ist möglicherweise nicht offensichtlich. Insbesondere wenn Sie Ihre Pakete mit privaten Zertifikaten für lokale Tests signieren, müssen Sie häufig auch die Vertrauensstellung für diese Zertifikate verwalten. Eine falsche Zertifikatvertrauenskonfiguration kann zu Fehlern bei der Signaturüberprüfung führen.

Wichtige Informationen

Technologien

Voraussetzungen

Anweisungen

Schritt 1: Untersuchen von Ereignisprotokollen auf Diagnoseinformationen

Je nachdem, wie Sie versucht haben, Ihre App bereitzustellen, haben Sie möglicherweise keinen aussagekräftigen Fehlercode für den Bereitstellungsfehler erhalten. In diesem Fall können Sie den Fehlercode in der Regel direkt aus den Ereignisprotokollen abrufen.

So rufen Sie den Fehlercode aus den Ereignisprotokollen ab

  1. Führen Sie eventvwr.msc aus.

  2. Wechseln Sie zu Ereignisanzeige (lokale)>Anwendungen und Diensteprotokolle>von Microsoft>Windows.

  3. Das erste zu überprüfende Protokoll ist AppxPackagingOM>Microsoft-Windows-AppxPackaging/Operational.

  4. Bereitstellungsbezogene Fehler werden in AppXDeployment-Server>Microsoft-Windows-AppXDeploymentServer/Operational aufgezeichnet.

    Suchen Sie bei Bereitstellungsfehlern nach dem neuesten Fehlerereignis 404. Dieses Fehlerereignis enthält den Fehlercode und eine Beschreibung, warum die Bereitstellung fehlgeschlagen ist. Wenn dem 404-Ereignis ein Fehlerereignis 465 vorangestellt ist, liegt ein Problem beim Öffnen des Pakets vor.

Wenn der 465-Fehler nicht aufgetreten ist, lesen Sie allgemeine Problembehandlung beim Packen, Bereitstellen und Abfragen von Windows-Apps. Andernfalls finden Sie in dieser Tabelle allgemeine Fehlercodes, die in der Fehlerzeichenfolge für Fehlerereignis 465 angezeigt werden können:

Fehlercode Fehler BESCHREIBUNG Vorschlag
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED Das App-Paket konnte nicht geöffnet werden. Dieser Fehler weist in der Regel auf ein Problem mit dem Paket hin. Sie müssen das Paket erneut erstellen und signieren. Weitere Informationen finden Sie unter Verwenden von App Packager.
0x80080205 APPX_E_INVALID_BLOCKMAP Das App-Paket wurde manipuliert oder weist eine ungültige Blockzuordnung auf. Das Paket ist beschädigt. Sie müssen das Paket erneut erstellen und signieren. Weitere Informationen finden Sie unter Verwenden von App Packager.
0x800B0004 TRUST_E_SUBJECT_NOT_TRUSTED Das App-Paket wurde manipuliert. Der Paketinhalt entspricht nicht mehr seiner digitalen Signatur. Sie müssen das Paket erneut signieren. Weitere Informationen finden Sie unter Signieren eines App-Pakets mit SignTool.
0x800B0100 TRUST_E_NOSIGNATURE Das App-Paket ist nicht signiert. Es können nur signierte Windows-App-Pakete bereitgestellt werden. Informationen zum Signieren eines App-Pakets finden Sie unter Signieren eines App-Pakets mit SignTool.
0x800B0109 CERT_E_UNTRUSTED_ROOT Die Zertifikatkette, die zum Signieren des App-Pakets verwendet wurde, endet in einem Stammzertifikat, das nicht vertrauenswürdig ist. Fahren Sie mit Schritt 2 fort, um die Problembehandlung für die Zertifikatvertrauensstellung zu beheben.
0x800B010A CERT_E_CHAINING Aus dem Zertifikat, das zum Signieren des App-Pakets verwendet wurde, konnte keine Zertifikatkette zu einer vertrauenswürdigen Stammautorität erstellt werden. Fahren Sie mit Schritt 2 fort, um die Problembehandlung für die Zertifikatvertrauensstellung zu beheben.

 

Schritt 2: Bestimmen der Zertifikatkette, die zum Signieren des App-Pakets verwendet wird

Um die Zertifikate zu ermitteln, denen der lokale Computer vertrauen muss, können Sie die Zertifikatkette für die digitale Signatur im App-Paket untersuchen.

So bestimmen Sie die Zertifikatkette

  1. Klicken Sie in Explorer mit der rechten Maustaste auf das App-Paket, und wählen Sie Eigenschaften aus.
  2. Wählen Sie im Dialogfeld Eigenschaften die Registerkarte Digitale Signaturen aus, auf der auch angezeigt wird, ob die Signatur überprüft werden kann.
  3. Wählen Sie in der Liste Signatur die Signatur aus, und klicken Sie dann auf die Schaltfläche Details .
  4. Klicken Sie im Dialogfeld Details zur digitalen Signatur auf die Schaltfläche Zertifikat anzeigen .
  5. Wählen Sie im Dialogfeld Zertifikat die Registerkarte Zertifizierungspfad aus.

Das oberste Zertifikat in der Kette ist das Stammzertifikat und das untere Zertifikat das Signaturzertifikat. Wenn sich nur ein einzelnes Zertifikat in der Kette befindet, ist das Signaturzertifikat auch ein eigenes Stammzertifikat. Sie können die Seriennummer für jedes Zertifikat bestimmen, das Sie dann mit Certutil verwenden:

So bestimmen Sie die Seriennummer für jedes Zertifikat

  1. Wählen Sie im Bereich Zertifizierungspfad das Zertifikat aus, und klicken Sie dann auf Zertifikat anzeigen.
  2. Wählen Sie im Dialogfeld Zertifikat die Registerkarte Details aus, auf der die Seriennummer und andere nützliche Eigenschaften des Zertifikats angezeigt werden.

Schritt 3: Bestimmen der Zertifikate, die vom lokalen Computer als vertrauenswürdig eingestuft werden

Um ein App-Paket bereitstellen zu können, muss es nicht nur im Kontext des Benutzers, sondern auch im kontext des lokalen Computers vertrauenswürdig sein. Daher kann die digitale Signatur gültig sein, wenn sie im vorherigen Schritt auf der Registerkarte Digitale Signaturen angezeigt wird, aber während der Bereitstellung des App-Pakets die Überprüfung weiterhin fehlschlägt.

So ermitteln Sie, ob die Zertifikatkette, die zum Signieren des App-Pakets verwendet wird, vom lokalen Computer ausdrücklich vertrauenswürdig ist

  1. Führen Sie diesen Befehl aus:

    CertUtil.exe -store Root rootCertSerialNumber
    
  2. Führen Sie diesen Befehl aus:

    CertUtil.exe -store TrustedPeople signingCertSerialNumber
    

Wenn Sie die Seriennummer des Zertifikats nicht angeben, listet Certutil alle Zertifikate auf, die vom lokalen Computer für diesen Speicher vertrauenswürdig sind.

Das Paket kann aufgrund von Zertifikatverkettungsfehlern nicht installiert werden, auch wenn das Signaturzertifikat nicht selbstsigniert ist und sich das Stammzertifikat im Stammspeicher des lokalen Computers befindet. In diesem Fall kann es zu einem Vertrauensproblem für die zwischengeschalteten Zertifizierungsstellen kommen. Weitere Informationen zu diesem Problem finden Sie unter Arbeiten mit Zertifikaten.

Bemerkungen

Wenn Sie festgestellt haben, dass das Paket nicht bereitgestellt werden konnte, weil das Signaturzertifikat nicht vertrauenswürdig ist, installieren Sie das Paket nicht, es sei denn, Sie wissen, wo es stammt, und Sie vertrauen es.

Wenn Sie der App für die Installation manuell vertrauen möchten (z. B. um Ihr eigenes testsigniertes App-Paket zu installieren), können Sie das Zertifikat manuell der Zertifikatvertrauensstellung des lokalen Computers aus dem App-Paket hinzufügen.

So fügen Sie das Zertifikat manuell zur Zertifikatvertrauensstellung des lokalen Computers hinzu

  1. Klicken Sie in Explorer mit der rechten Maustaste auf das App-Paket, und wählen Sie im Popupkontextmenü Eigenschaften aus.
  2. Wählen Sie im Dialogfeld Eigenschaften die Registerkarte Digitale Signaturen aus.
  3. Wählen Sie in der Liste Signatur die Signatur aus, und klicken Sie dann auf die Schaltfläche Details .
  4. Klicken Sie im Dialogfeld Details zur digitalen Signatur auf die Schaltfläche Zertifikat anzeigen .
  5. Klicken Sie im Dialogfeld Zertifikat auf die Schaltfläche Zertifikat installieren... .
  6. Wählen Sie im Zertifikatimport-Assistenten die Option Lokaler Computer aus, und klicken Sie dann auf Weiter. Sie müssen Administratorrechte erteilen, um fortzufahren.
  7. Wählen Sie Alle Zertifikate im folgenden Speicher platzieren aus, und navigieren Sie zum Speicher Vertrauenswürdige Personen.
  8. Klicken Sie auf Weiter, und klicken Sie dann auf Fertig stellen , um den Assistenten abzuschließen.

Nach dieser manuellen Ergänzung können Sie sehen, dass das Zertifikat jetzt im Dialogfeld Zertifikat vertrauenswürdig ist.

Sie können das Zertifikat entfernen, nachdem Sie es nicht mehr benötigen.

So entfernen Sie das Zertifikat

  1. Führen Sie Cmd.exe als Administrator aus.

  2. Führen Sie an der Administratoreingabeaufforderung den folgenden Befehl aus:

    Certutil -store TrustedPeople
    
  3. Suchen Sie nach der Seriennummer des zertifikats, das Sie installiert haben. Diese Nummer ist die certID.

  4. Führen Sie diesen Befehl aus:

    Certutil -delStore TrustedPeople certID
    

Es wird empfohlen, das manuelle Hinzufügen von Stammzertifikaten zum Zertifikatspeicher von vertrauenswürdigen Stammzertifizierungsstellen auf dem lokalen Computer zu vermeiden. Mehrere Anwendungen, die mit Zertifikaten signiert sind, die mit demselben Stammzertifikat verkettet sind, z. B. Branchenanwendungen, kann effizienter sein als die Installation einzelner Zertifikate im Speicher für vertrauenswürdige Personen. Der Speicher für vertrauenswürdige Personen enthält Zertifikate, die standardmäßig als vertrauenswürdig eingestuft werden und daher nicht von höheren Instanzen oder Zertifikatvertrauenslisten oder -ketten überprüft werden. Überlegungen zum Hinzufügen von Zertifikaten zum Zertifikatspeicher für vertrauenswürdige Stammzertifizierungsstellen finden Sie unter Bewährte Methoden für die Codesignatur.

Sicherheitsüberlegungen

Durch das Hinzufügen eines Zertifikats zu lokalen Computerzertifikatspeichern wirken Sie sich auf die Zertifikatvertrauensstellung aller Benutzer auf dem Computer aus. Es wird empfohlen, alle Codesignaturzertifikate, die Sie zum Testen von App-Paketen benötigen, im Zertifikatspeicher für vertrauenswürdige Personen zu installieren. Entfernen Sie diese Zertifikate umgehend, wenn sie nicht mehr erforderlich sind, um zu verhindern, dass sie zur Kompromittierung der Systemvertrauensstellung verwendet werden. Wenn Sie ihre eigenen Testzertifikate zum Signieren von App-Paketen erstellen, wird empfohlen, die Berechtigungen einzuschränken, die dem Testzertifikat zugeordnet sind. Informationen zum Erstellen von Testzertifikaten zum Signieren von App-Paketen finden Sie unter Erstellen eines Signaturzertifikats für Ein App-Paket.

Beispiele

Beispiel zum Erstellen eines App-Pakets

Konzepte

Problembehandlung beim Packen, Bereitstellen und Abfragen von Windows-Apps

Certutil-Aufgaben zum Verwalten von Zertifikaten