Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die häufigsten Arten von Fehlern bei der Verwendung von SignTool sind intern und sehen in der Regel ungefähr wie folgt aus:
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024885 / 0x8007000B)
Wenn der Fehlercode mit 0x8008 beginnt, z. B. 0x80080206 (APPX_E_CORRUPT_CONTENT), ist das signierte Paket ungültig. Wenn dieser Fehlertyp angezeigt wird, müssen Sie das Paket neu erstellen und SignTool erneut ausführen.
SignTool verfügt über eine Debugoption zum Anzeigen von Zertifikatfehlern und Filtern. Um das Debugging-Feature zu verwenden, platzieren Sie die /debug Option direkt hinter signdem vollständigen SignTool-Befehl .
SignTool sign /debug [options]
Ein häufigerer Fehler ist 0x8007000B. Für diesen Fehlertyp finden Sie weitere Informationen im Ereignisprotokoll.
So finden Sie weitere Informationen im Ereignisprotokoll:
- Run Eventvwr.msc
- Öffnen Sie das Ereignisprotokoll: Ereignisanzeige (Local) -> Applications and Services Logs -> Microsoft -> Windows -> AppxPackagingOM -> Microsoft-Windows-AppxPackaging/Operational
- Suchen des letzten Fehlerereignisses
Der interne Fehler 0x8007000B entspricht in der Regel einem der folgenden Werte:
| Ereignis-ID | Beispiel-Ereignis-Zeichenfolge | Vorschlag |
|---|---|---|
| 150 | Fehler 0x8007000B: Der Name des Herausgebers des App-Manifests (CN=Contoso) muss mit dem Betreffnamen des Signaturzertifikats (CN=Contoso, C=US) übereinstimmen. | Der Name des Herausgebers im App-Manifest muss exakt mit dem Betreffnamen der Signierung übereinstimmen. |
| 151 | fehler 0x8007000B: Die angegebene Signaturhashmethode (SHA512) muss mit der Hashmethode übereinstimmen, die in der Blockzuordnung des App-Pakets (SHA256) verwendet wird. | Der im Parameter "/fd" angegebene HashAlgorithm ist falsch. Führen Sie SignTool erneut aus, wobei ein Hash-Algorithmus verwendet wird, der zur Blockkarte des App-Pakets passt (die zur Erstellung des App-Pakets verwendet wurde). |
| 152 | fehler 0x8007000B: Der Inhalt des App-Pakets muss anhand seiner Blockzuordnung überprüft werden. | Das App-Paket ist beschädigt und muss neu erstellt werden, um eine neue Blockzuordnung zu generieren. Weitere Informationen zum Erstellen eines App-Pakets finden Sie unter Erstellen eines App-Pakets mit dem tool MakeAppx.exe |
Ein weiterer häufiger Fehler ist 0x80080057. Beim Versuch, eine Portable Executable (PE)-Datei zu signieren, können die folgenden Probleme auftreten, wenn Sie das SignTool in Windows verwenden:
Fehler beim Signieren einer PE-Datei mit 4 Gigabyte (GB) oder höher. Wenn Sie versuchen, zu signieren, wird die Fehlermeldung "Ungültiger Parameter (0x80080057)" angezeigt.
Bei Dateien, die größer als 4 GB sind, ist der generierte Hash möglicherweise nicht korrekt, obwohl SignTool die Datei andernfalls erfolgreich signieren kann.
Hinweis
Dies gilt insbesondere für CAT-Dateien.
Dieses Problem tritt für PE-Dateien wie .exe, .sysusw. auf. Dieses Problem tritt aufgrund einer ULONG-Variablen im PE-Header auf, die die Bildgröße angibt. (Die Bildgröße beträgt 2 GB für Betriebssysteme auf unterer Ebene, z. B. Vista und frühere Versionen.) Dies ist eine Designbeschränkung seit 1996. Der maximale Grenzwert für diesen Wert beträgt 4 GB für PE-Dateien, z. B. .exe und .sys. Obwohl CAT-Dateien in der Regel signierbar sind, ist der generierte interne Hash möglicherweise nicht korrekt.
Um dieses Problem zu umgehen, stellen Sie sicher, dass jede PE-Datei, die Sie signieren möchten, kleiner als 4 GB ist. Dies ist eine bekannte Entwurfsbeschränkung des PE-Formats ohne geplante Korrektur aufgrund von Abwärtskompatibilitätseinschränkungen.
Hinweis
Dieses Problem ist nicht spezifisch für SignTool. Der Entwurf des PE-Headers ist auf 4 GB für Windows 7 und höher Windows Versionen beschränkt, unabhängig davon, welches Tool verwendet wird.
Häufig gestellte Fragen (FAQ)
F1: Was ist die aktuelle, offizielle Dateigrößenbeschränkung für eine digitale Signatur (und Gegenzeichung mit Zeitstempel) auf Windows?
A1: Bei PE-Dateien wie .exe und .sysbeträgt die maximale Dateigröße für die Signatur 4 GB.
F2: Gibt es eine bestimmte Version von Windows, z. B. Windows Server 2016, die die meisten Möglichkeiten zum Signieren großer Dateien hat?
A2: Nein, das Problem betrifft alle Versionen von Windows.
F3: Hat die 64-Bit-Version von Signtool eine bessere Unterstützung für diese Funktionalität als die 32-Bit-Version?
A: Nein, die 64-Bit-Version von SignTool verwendet dieselben Werte wie die 32-Bit-Version. Daher bleibt das Problem in der 64-Bit-Version.
F4: Würden Kunden, die eine 32-Bit-Version von Windows verwenden, möglicherweise Probleme haben, wenn sie versuchen, Dateien zu nutzen, die mit der 64-Bit-Version von SignTool signiert worden sind?
A: Nein. Die Einschränkungen bleiben jedoch unabhängig davon, welche Version von SignTool verwendet wird.
F5: Sollten wir ein ganz anderes Signaturtool oder eine ganz andere Methode verwenden?
A: Ja. Azure Trusted Signing ist der verwaltete Codesignaturdienst Microsoft und ist die empfohlene moderne Alternative zum Verwalten Eigener Zertifikate. Es übernimmt die Verwaltung des Zertifikatlebenszyklus und integriert sich in CI/CD-Pipelines. Azure Key Vault ist eine weitere Option zum Signieren mit in der Cloud gespeicherten Zertifikaten. Für Offline- oder Self-Service-Szenarien bleibt SignTool das Standardtool.