Delen via


Ondertekeningsintegraties instellen voor het gebruik van vertrouwde ondertekening

Vertrouwde ondertekening ondersteunt momenteel de volgende ondertekeningsintegraties:

  • SignTool
  • GitHub Actions
  • Azure DevOps-taken
  • PowerShell voor Authenticode
  • Azure PowerShell (App Control for Business CI-beleid)
  • Vertrouwde ondertekenings-SDK

We werken voortdurend aan de ondersteuning van meer ondertekeningsintegraties. We werken de ondersteunde integratielijst bij wanneer er meer integraties beschikbaar zijn.

In dit artikel wordt uitgelegd hoe u elke ondersteunde integratie van vertrouwde ondertekening instelt.

SignTool instellen voor het gebruik van vertrouwde ondertekening

In deze sectie wordt uitgelegd hoe u SignTool instelt voor gebruik met Vertrouwde ondertekening.

Vereisten

U hebt het volgende nodig om de stappen in dit artikel te voltooien:

  • Een vertrouwd handtekeningaccount, identiteitsvalidatie en certificaatprofiel.
  • Afzonderlijke of groepstoewijzing van de rol Vertrouwde handtekeningcertificaatprofielondertekening.
  • Windows 10 versie 1809/oktober 2018 Update of hoger, Windows 11 (alle versies) of Windows Server 2016 of hoger

Installatieprogramma voor vertrouwde ondertekeningsclients

Trusted Signing Client Tools voor SignTool.exe is een bibliotheekinvoegtoepassing waarvoor de volgende onderdelen zijn vereist:

  1. Windows SDK SignTool.exe (minimumversie: 10.0.2261.755)
  2. .NET 8 Runtime
  3. Microsoft Visual C++ Redistributable
  4. Dlib van vertrouwde ondertekeningsclient

Ter vereenvoudiging van deze installatie is er een MSI-installatiepakket dat beschikbaar is voor downloaden, samen met een Setup.exe.

Installeren vanaf de Windows-pakketbeheerder

Het installatieprogramma voor vertrouwde ondertekeningsclients is beschikbaar op de Windows-pakketbeheerder (WinGet).

Notitie

winget is standaard beschikbaar in Windows 11 en moderne versies van Windows 10. Het is echter mogelijk niet geïnstalleerd in oudere versies van Windows. Zie de winget-documentatie voor installatie-instructies.

winget install -e --id Microsoft.Azure.TrustedSigningClientTools

De -e optie is om ervoor te zorgen dat het officiële pakket clienthulpprogramma's voor vertrouwde ondertekening is geïnstalleerd. Met deze opdracht wordt standaard de nieuwste versie geïnstalleerd. Als u een versie wilt opgeven, voegt u een -v <version> met de gewenste versie toe aan de opdracht.

Installeren vanuit PowerShell

Als u de hulpprogramma's voor vertrouwde ondertekeningsclients wilt installeren met behulp van PowerShell, start u PowerShell als beheerder en voert u de volgende opdracht uit:

$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri "https://download.microsoft.com/download/6d9cb638-4d5f-438d-9f21-23f0f4405944/TrustedSigningClientTools.msi" -OutFile .\TrustedSigningClientTools.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I TrustedSigningClientTools.msi /quiet'; Remove-Item .\TrustedSigningClientTools.msi

Overzicht van handmatige installatiestappen

  1. Download en installeer SignTool.
  2. Download en installeer de .NET 8 Runtime.
  3. Download en installeer het dlib-pakket voor vertrouwde ondertekening.
  4. Maak een JSON-bestand om uw vertrouwde handtekeningaccount en een certificaatprofiel op te geven.
  5. Als u een bestand wilt ondertekenen, roept u SignTool aan.

SignTool downloaden en installeren

Vertrouwde ondertekening vereist het gebruik van SignTool voor het ondertekenen van bestanden in Windows, met name de versie van SignTool.exe die zich in de Windows 10 SDK 10.0.2261.755 of hoger bevindt. U kunt de volledige Windows 10 SDK installeren via het Visual Studio Installer of deze afzonderlijk downloaden en installeren.

SignTool downloaden en installeren:

  1. Download de nieuwste versie van SignTool en Windows Build Tools NuGet op Microsoft.Windows.SDK.BuildTools.

  2. Installeer SignTool vanuit de Windows SDK (minimaal versie: 10.0.2261.755, 20348 Windows SDK-versie wordt niet ondersteund met onze dlib).

Een andere optie is het gebruik van het meest recente nuget.exe-bestand om het nieuwste NuGet-pakket voor Windows SDK Build Tools te downloaden en uit te pakken met behulp van PowerShell:

  1. Download nuget.exe door de volgende downloadopdracht uit te voeren:

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Download het NuGet-pakket Windows SDK Build Tools en pak het uit door de volgende installatieopdracht uit te voeren:

    .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
    

.NET 8.0 Runtime downloaden en installeren

Voor de onderdelen die SignTool gebruikt om te interfacen met Trusted Signing, is de installatie van .NET 8.0 Runtime vereist. U hebt alleen de core .NET 8.0 Runtime nodig. Zorg ervoor dat u de juiste platformruntime installeert, afhankelijk van de versie van SignTool die u wilt uitvoeren. U kunt ook gewoon beide installeren

Voorbeeld:

Het dlib-pakket voor vertrouwde ondertekening downloaden en installeren

Het dlib-pakket vertrouwde ondertekening (een .zip-bestand) downloaden en installeren:

  1. Download het dlib-pakket voor vertrouwde ondertekening.

  2. Pak de inhoud uit die met Trusted Signing is gezipt en installeer deze op het ondertekeningsknooppunt in uw keuze van de map. Het knooppunt moet het knooppunt zijn waar u SignTool gebruikt om bestanden te ondertekenen.

Een andere optie is om het dlib-pakket voor vertrouwde ondertekening via NuGet te downloaden, vergelijkbaar met het NuGet-pakket voor Windows SDK Build Tools:

.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x

Een JSON-bestand maken

Als u zich wilt aanmelden met vertrouwde ondertekening, moet u de details opgeven van uw vertrouwde handtekeningaccount en certificaatprofiel dat is gemaakt als onderdeel van de vereisten. U geeft deze informatie op in een JSON-bestand door de volgende stappen uit te voeren:

  1. Maak een nieuw JSON-bestand (bijvoorbeeld metadata.json).

  2. Voeg de specifieke waarden voor uw vertrouwde handtekeningaccount en certificaatprofiel toe aan het JSON-bestand. Zie het metadata.sample.json-bestand dat is opgenomen in het dlib-pakket vertrouwde ondertekening of gebruik het volgende voorbeeld voor meer informatie:

    {
      "Endpoint": "<Trusted Signing account endpoint>",
      "CodeSigningAccountName": "<Trusted Signing account name>",
      "CertificateProfileName": "<Certificate profile name>",
      "CorrelationId": "<Optional CorrelationId value>"
    }
    

    De "Endpoint" URI-waarde moet een URI zijn die overeenkomt met de regio waarin u uw vertrouwde handtekeningaccount en certificaatprofiel hebt gemaakt bij het instellen van deze resources. De tabel bevat regio's en de bijbehorende URI's.

    Regio Regioklassevelden Eindpunt-URI-waarde
    VS - oost EastUS https://eus.codesigning.azure.net
    VS - west [ 1] WestUS3 https://wus3.codesigning.azure.net
    VS - west-centraal WestCentralUS https://wcus.codesigning.azure.net
    VS - west 2 WestUS2 https://wus2.codesigning.azure.net
    Europa - noord Noord-Europa https://neu.codesigning.azure.net
    Europa -west West-Europa https://weu.codesigning.azure.net

    1 Het optionele "CorrelationId" veld is een ondoorzichtige tekenreekswaarde die u kunt opgeven om tekenaanvragen te correleren met uw eigen werkstromen, zoals build-id's of computernamen.

Verificatie

Deze taak voert verificatie uit met behulp van DefaultAzureCredential, waarmee een reeks verificatiemethoden in volgorde wordt geprobeerd. Als één methode mislukt, wordt de volgende methode geprobeerd totdat de verificatie is geslaagd.

Elke verificatiemethode kan afzonderlijk worden uitgeschakeld om onnodige pogingen te voorkomen.

Als u bijvoorbeeld specifiek met EnvironmentCredential verificatiet, schakelt u de andere referenties uit met de volgende invoer:

ExcludeEnvironmentCredential: false ExcludeManagedIdentityCredential: true ExcludeSharedTokenCacheCredential: true ExcludeVisualStudioCredential: true ExcludeVisualStudioCodeCredential: true ExcludeAzureCliCredential: true ExcludeAzurePowershellCredential: true ExcludeInteractiveBrowserCredential: true

Als u bijvoorbeeld een AzureCliCredential gebruikt, willen we ook een poging om te verifiëren overslaan met de verschillende methoden die voorafgaan in volgorde.

SignTool gebruiken om een bestand te ondertekenen

SignTool aanroepen om een bestand te ondertekenen:

  1. Noteer waar uw SDK-buildhulpprogramma's, de geëxtraheerde Azure.CodeSigning.Dlib en uw metadata.json-bestand zich bevinden (uit eerdere secties).

  2. Vervang de tijdelijke aanduidingen in het volgende pad door de specifieke waarden die u in stap 1 hebt genoteerd:

    & "<Path to SDK bin folder>\x64\signtool.exe" sign /v /debug /fd SHA256 /tr "http://timestamp.acs.microsoft.com" /td SHA256 /dlib "<Path to Trusted Signing dlib bin folder>\x64\Azure.CodeSigning.Dlib.dll" /dmdf "<Path to metadata file>\metadata.json" <File to sign>
    
  • Zowel de x86- als de x64-versie van SignTool zijn opgenomen in de Windows SDK. Zorg ervoor dat u verwijst naar de bijbehorende versie van Azure.CodeSigning.Dlib.dll. Het voorgaande voorbeeld is voor de x64-versie van SignTool.
  • Zorg ervoor dat u de aanbevolen Windows SDK-versie gebruikt in de afhankelijkheden die aan het begin van dit artikel worden vermeld of dat het dlib-bestand niet werkt.

Vertrouwde handtekeningcertificaten hebben een geldigheid van drie dagen, dus tijdstempels zijn essentieel voor een continue geslaagde validatie van een handtekening na die geldigheidsperiode van drie dagen. Vertrouwde ondertekening raadt het gebruik aan van de Microsoft Public RSA Time Stamping Authority van Vertrouwde ondertekening: http://timestamp.acs.microsoft.com/.

Andere ondertekeningsintegraties gebruiken met Vertrouwde ondertekening

U kunt ook de volgende hulpprogramma's of platforms gebruiken om registratieintegraties in te stellen met Trusted Signing.