Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De meest voorkomende typen fouten bij het gebruik van SignTool zijn intern en zien er meestal ongeveer als volgt uit:
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024885 / 0x8007000B)
Als de foutcode begint met 0x8008, zoals 0x80080206 (APPX_E_CORRUPT_CONTENT), is het ondertekende pakket ongeldig. Als u dit type fout krijgt, moet u het pakket opnieuw opbouwen en SignTool opnieuw uitvoeren.
SignTool heeft een foutopsporingsoptie beschikbaar om certificaatfouten en filteren weer te geven. Als u de functie voor foutopsporing wilt gebruiken, plaatst u de /debug optie direct daarna sign, gevolgd door de volledige signtool-opdracht .
SignTool sign /debug [options]
Een veelvoorkomende fout is 0x8007000B. Voor dit type fout vindt u meer informatie in het gebeurtenislogboek.
Meer informatie vindt u in het gebeurtenislogboek:
- Eventvwr.msc uitvoeren
- Open het gebeurtenislogboek: Logboeken (lokaal) -> Applications and Services Logs -> Microsoft -> Windows -> AppxPackagingOM -> Microsoft-Windows-AppxPackaging/Operational
- De meest recente fout gebeurtenis zoeken
De interne fout 0x8007000B komt meestal overeen met een van deze waarden:
| Gebeurtenis-id | Voorbeeld van een gebeurtenistekenreeks | Suggestie |
|---|---|---|
| 150 | fout 0x8007000B: de naam van de uitgever van het app-manifest (CN=Contoso) moet overeenkomen met de onderwerpnaam van het handtekeningcertificaat (CN=Contoso, C=US). | De naam van de uitgever van het app-manifest moet exact overeenkomen met de onderwerpnaam van de ondertekening. |
| 151 | fout 0x8007000B: de hash-methode voor handtekening (SHA512) moet overeenkomen met de hash-methode die wordt gebruikt in de sha256 (App Package Block Map). | De hashAlgorithm die is opgegeven in de parameter /fd, is onjuist. Voer SignTool opnieuw uit met hashAlgorithm die overeenkomt met de blokkaart van het app-pakket (gebruikt om het app-pakket te maken) |
| 152 | fout 0x8007000B: de inhoud van het app-pakket moet worden gevalideerd tegen zijn blokkaart. | Het app-pakket is beschadigd en moet herbouwd worden om een nieuwe blokkaart te genereren. Zie Een app-pakket maken met het hulpprogramma MakeAppx.exe voor meer informatie over het maken van een app-pakket |
Een andere veelvoorkomende fout is 0x80080057. U kunt de volgende problemen ondervinden wanneer u probeert een PE-bestand (Portable Executable) te ondertekenen met behulp van het hulpprogramma SignTool op Windows:
Kan geen PE-bestand ondertekenen dat 4 gigabyte (GB) of groter is. Wanneer u zich probeert te ondertekenen, wordt het foutbericht 'ongeldige parameter (0x80080057)' weergegeven.
Voor bestanden die groter zijn dan 4 GB, is de gegenereerde hash mogelijk niet nauwkeurig, ook al kan SignTool het bestand anders ondertekenen.
Opmerking
Dit geldt met name voor .cat-bestanden.
Dit probleem treedt op voor PE-bestanden, zoals .exe, .sys, enzovoort. Dit probleem treedt op vanwege een ULONG-variabele in de PE-header waarmee de afbeeldingsgrootte wordt opgegeven. (De afbeeldingsgrootte is 2 GB voor oudere besturingssystemen, zoals Vista en eerdere versies.) Dit is een ontwerpbeperking sinds 1996. De maximumlimiet voor deze waarde is 4 GB voor PE-bestanden, zoals .exe en .sys. Hoewel .cat-bestanden meestal kunnen worden ondertekend, is de interne hash die wordt gegenereerd mogelijk niet nauwkeurig.
U kunt dit probleem omzeilen door ervoor te zorgen dat een PE-bestand dat u probeert te ondertekenen kleiner is dan 4 GB. Dit is een bekende ontwerpbeperking van de PE-indeling zonder geplande oplossing, vanwege compatibiliteitsbeperkingen met eerdere versies.
Opmerking
Dit probleem is niet specifiek voor SignTool. Het ontwerp van de PE-header is beperkt tot 4 GB voor Windows 7 en latere Windows versies, ongeacht welk hulpprogramma wordt gebruikt.
Veelgestelde vragen (FAQ)
V1: Wat is de huidige, officiƫle limiet voor de bestandsgrootte van een digitale handtekening (en tijdstempel-countersignature) op Windows?
A1: Voor PE-bestanden zoals .exe en .sysis de maximale bestandsgrootte voor ondertekening 4 GB.
V2: Is er een bepaalde versie van Windows, zoals Windows Server 2016, die de meeste mogelijkheid heeft om grote bestanden te ondertekenen?
A2: Nee, het probleem is van invloed op alle versies van Windows.
V3: Heeft de 64-bits versie van Signtool betere ondersteuning voor deze functionaliteit dan de 32-bits versie wel?
A: Nee, de 64-bits versie van SignTool gebruikt dezelfde waarden als de 32-bits versie. Daarom blijft het probleem in 64-bit.
Vraag 4: Zouden klanten die een 32-bits versie van Windows gebruiken mogelijk problemen ervaren als ze proberen bestanden te gebruiken die zijn ondertekend met de 64-bits versie van SignTool?
A: Nee. De beperkingen blijven echter behouden, ongeacht welke versie van SignTool wordt gebruikt.
V5: Moeten we een ander ondertekeningsprogramma of een andere methode gebruiken?
A: Ja. Vertrouwde ondertekening van Azure is Microsoft beheerde service voor ondertekening van programmacode en is het aanbevolen moderne alternatief voor het beheren van uw eigen certificaten. Het verwerkt levenscyclusbeheer van certificaten en integreert met CI/CD-pijplijnen. Azure Key Vault is een andere optie voor het ondertekenen met cloudcertificaten. Voor offline- of selfservicescenario's blijft SignTool het standaardhulpprogramma.