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.
App-pakketondertekening is een vereiste stap bij het maken van een MSIX-pakket dat kan worden geïmplementeerd. Windows vereist dat MSIX-pakketten zijn ondertekend met een geldig certificaat voor ondertekening van code.
Als u een Windows-toepassing wilt installeren, moet het pakket niet alleen ondertekend worden, maar ook vertrouwd zijn op het apparaat. Dit betekent dat het certificaat moet worden gekoppeld aan een van de vertrouwde rootcertificaten op het apparaat. Standaard vertrouwt Windows certificaten van de meeste certificeringsinstanties die certificaten voor codeondertekening bieden.
Als u een MSIX-bundel maakt, hoeft u bovendien niet alle pakketten in de bundel afzonderlijk te ondertekenen. Alleen de bundel moet worden ondertekend; de handtekening dekt de pakketten binnen de bundel.
Opties voor ondertekening
Kies een ondertekeningsbenadering op basis van uw scenario:
| Scenariobeschrijving | Option | Cost |
|---|---|---|
| Ontwikkelen en lokaal testen | Zelfondertekend certificaat | Gratis |
| Productiedistributie (aanbevolen) | Azure Artifact Signing (voorheen Vertrouwde ondertekening) | Basic: ca. $10/maand |
| Alternatieve productiedistributie | OV-code-ondertekeningscertificaat van een CA | $300-500/jaar |
| Microsoft Store-distributie | Ondertekend door de winkel bij de indiening | Gratis |
Opmerking
Azure Artifact Signing (voorheen bekend als Trusted Signing) is Microsofts beheerde service voor codeondertekening en is de aanbevolen optie voor de ondertekening van productie-MSIX. Belangrijkste kenmerken:
- Reputatie op basis van identiteit: Reputatie is gekoppeld aan uw geverifieerde uitgeversidentiteit in plaats van een specifiek certificaat, zodat deze wordt verzameld over builds. Echter, zoals bij elke distributie die niet via de Store verloopt, zullen nieuwe apps nog steeds SmartScreen-waarschuwingen weergeven totdat er voldoende downloadgeschiedenis is opgebouwd. Dit proces duurt doorgaans enkele weken. Zie SmartScreen-reputatie voor Windows app-ontwikkelaars.
- Kortstondige certificaten: er wordt dagelijks een nieuw certificaat uitgegeven en elk certificaat blijft ongeveer 3 dagen geldig, waardoor het zo nodig tijdsspecifieke intrekking mogelijk is.
-
CI/CD ready: ondersteunt GitHub Actions (
azure/trusted-signing-action) en Azure DevOps out-of-the-box.
Geschiktheid voor openbare vertrouwenscertificaten: beschikbaar voor organisaties in de VS, Canada, de Europese Unie en het Verenigd Koninkrijk, en voor individuele ontwikkelaars in de VS en Canada. Organisaties moeten een verifieerbare belastinggeschiedenis van drie of meer jaar hebben. Zie Belangrijke informatie voor identiteitsvalidatie.
Aantekening met SignTool vereist extra installatie: SignTool werkt alleen met Artifact Signing als u de Clienthulpprogramma's voor artefactondertekening gebruikt, waaronder de vereiste dlib-invoegtoepassing en .NET 8 runtime. U moet ook een metadata.json bestand opgeven met uw accounteindpunt en certificaatprofiel. Een standaard Windows SDK SignTool-aanroep op zichzelf werkt niet met Artifact Signing. De eenvoudigste installatie is:
winget install -e --id Microsoft.Azure.ArtifactSigningClientTools
Zie SignTool instellen met Artifact Signing voor de volledige installatie.
AzureSignTool is een afzonderlijk communityhulpprogramma voor ondertekening met certificaten die zijn opgeslagen in Azure Key Vault. Het biedt geen ondersteuning voor Ondertekening van artefacten. De twee zijn afzonderlijke services. Zie Pakketten ondertekenen met Azure Key Vault voor Azure Key Vault-gebaseerde aanmelding bij Visual Studio.
WinApp CLI
De WinApp CLI biedt handige opdrachten voor het ondertekenen van ontwikkeling:
-
winapp cert generate— een zelfondertekend certificaat maken voor ontwikkeling -
winapp sign— een MSIX-pakket of uitvoerbaar bestand ondertekenen met een certificaat -
winapp tool signtool— open SignTool rechtstreeks vanuit de Windows SDK
Onderwerpen over ondertekening
| Onderwerp | Beschrijving |
|---|---|
| Vereisten voor ondertekening | Vereisten voor het ondertekenen van een app-pakket. |
| SignTool gebruiken | SignTool van de Windows SDK gebruiken om een app-pakket te ondertekenen. |
| Pakketten toewijzen met Azure Key Vault | Pakketten ondertekenen met behulp van een certificaat dat is opgeslagen in Azure Key Vault vanuit Visual Studio. |
| Onderteken een MSIX-pakket met Device Guard-ondertekening | Uw app ondertekenen met Device Guard-ondertekening. |
| Niet-ondertekende pakketten maken om te testen | Een niet-ondertekend MSIX-pakket maken voor testen. |
| Azure Artifactondertekening | Microsoft beheerde ondertekeningsservice (voorheen Trusted Signing) voor msix-productiepakketten. |
Tijdstempel
Het wordt ten zeerste aanbevolen om tijdstempels te gebruiken bij het ondertekenen van uw app met een certificaat. Tijdstempels behouden de handtekening waardoor het app-pakket kan worden geaccepteerd door het app-implementatieplatform, zelfs nadat het certificaat is verlopen. Op het moment van de pakketinspectie maakt de tijdstempel het mogelijk om de handtekening van het pakket te valideren met betrekking tot het tijdstip waarop het is ondertekend. Hierdoor kunnen pakketten worden geaccepteerd, zelfs nadat het certificaat niet meer geldig is. Pakketten die niet zijn voorzien van een tijdstempel, worden geëvalueerd op basis van de huidige tijd en als het certificaat niet meer geldig is, accepteert Windows het pakket niet.
Hieronder volgen de verschillende scenario's rond app-ondertekening met/zonder tijdstempels:
| Scenariobeschrijving | App wordt ondertekend zonder tijdstempels | App is ondertekend met tijdstempels |
|---|---|---|
| Certificaat is geldig | App wordt geïnstalleerd | App wordt geïnstalleerd |
| Certificaat is ongeldig (verlopen) | App kan niet worden geïnstalleerd | De app wordt geïnstalleerd zodra de authenticiteit van het certificaat is geverifieerd bij ondertekening door de tijdstempelautoriteit |
Opmerking
Als de app met succes op een apparaat is geïnstalleerd, blijft deze actief, zelfs nadat het certificaat is verlopen, ongeacht of het een tijdstempel heeft of niet.
Handhaving van de integriteit van pakketten
Naast ervoor te zorgen dat alleen vertrouwde toepassingen op een apparaat worden geïnstalleerd, is het extra voordeel van het ondertekenen van een MSIX-pakket dat Windows de integriteit van uw pakket en de inhoud ervan kunt afdwingen nadat het op een apparaat is geïmplementeerd. Door te koppelen aan de AppxBlockMap.xml en AppxSignature.p7x in een ondertekend pakket, kan Windows validatiecontroles uitvoeren op de integriteit van een pakket en de inhoud ervan tijdens runtime en tijdens Windows Defender scans. Als een pakket wordt geacht te worden gemanipuleerd Windows het starten van toepassingen en het starten van een herstelwerkstroom blokkeert om het pakket te herstellen of opnieuw te installeren. Voor pakketten die niet worden gedistribueerd via de Microsoft Store, wordt pakketintegriteit afgedwongen als het pakket het element uap10:PackageIntegrity declareert en wordt geïmplementeerd op Windows 2004 en hoger. Hieronder vindt u een voorbeeldverklaring van de handhaving van de integriteit van verpakkingen in de AppxManifest.xml:
<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
IgnorableNamespaces="uap10">
...
<Properties>
<uap10:PackageIntegrity>
<uap10:Content Enforcement="on" />
</uap10:PackageIntegrity>
</Properties>
...
</Package>
Modus van het apparaat
Windows 10 stelt gebruikers in staat de modus te selecteren waarin hun apparaat moet draaien in de Instellingen-app. De modi zijn Microsoft Store apps, Sideload-apps en ontwikkelaarsmodus.
Microsoft Store-apps is de veiligste omdat het alleen de installatie van apps vanaf de Microsoft Store toestaat. Apps in de Microsoft Store doorlopen het certificeringsproces om ervoor te zorgen dat de apps veilig zijn voor gebruik.
Sideload-apps en de ontwikkelaarsmodus zijn toleranter voor apps die zijn ondertekend door andere certificaten, zolang die certificaten worden vertrouwd en gekoppeld aan een van de vertrouwde rootsgroepen op het apparaat. Selecteer alleen de ontwikkelaarsmodus als u een ontwikkelaar bent en Windows 10 apps bouwt of foutopsporing opspoort. Meer informatie over de ontwikkelaarsmodus en wat deze biedt, is hier te vinden.
Opmerking
Vanaf Windows 10 versie 2004 is sideload-optie standaard ingeschakeld. Als gevolg hiervan is de ontwikkelaarsmodus nu een schakelaar. Ondernemingen kunnen Sideloading nog steeds uitschakelen via beleid.