Dela via


Konfigurera signeringsintegreringar för att använda betrodd signering

Betrodd signering stöder för närvarande följande signeringsintegreringar:

  • SignTool
  • GitHub Actions
  • Azure DevOps-uppgifter
  • PowerShell för Authenticode
  • Azure PowerShell (App Control for Business CI-princip)
  • Betrodd signerings-SDK

Vi arbetar ständigt med att stödja fler signeringsintegreringar. Vi uppdaterar integreringslistan som stöds när fler integreringar är tillgängliga.

Den här artikeln beskriver hur du konfigurerar varje signeringsintegrering med betrodd signering som stöds.

Konfigurera SignTool för att använda betrodd signering

I det här avsnittet beskrivs hur du konfigurerar SignTool att använda med betrodd signering.

Förutsättningar

För att utföra stegen i den här artikeln behöver du:

  • Ett konto för betrodd signering, identitetsverifiering och certifikatprofil.
  • Individuell tilldelning eller grupptilldelning av rollen Signerad certifikatprofil för betrodd signeringscertifikat.
  • Windows 10 Version 1809/Oktober 2018 Update eller senare, Windows 11 (alla versioner) eller Windows Server 2016 eller senare

Installationsprogram för betrodda signeringsklientverktyg

Klientverktyg för betrodd signering för SignTool.exe är ett biblioteks-plugin-program som kräver följande komponenter:

  1. Windows SDK-SignTool.exe (lägsta version: 10.0.2261.755)
  2. .NET 8 Runtime
  3. Microsoft Visual C++ Redistributable
  4. Dlib för betrodd signeringsklient

För att förenkla den här installationen finns det ett MSI-installationspaket som är tillgängligt för nedladdning tillsammans med en Setup.exe.

Installera från Windows Package Manager

Installationsprogrammet för betrodda signeringsklientverktyg är tillgängligt i Windows Package Manager (WinGet).

Kommentar

winget är tillgängligt som standard i Windows 11 och moderna versioner av Windows 10. Den kanske dock inte installeras i äldre versioner av Windows. Se winget-dokumentationen för installationsinstruktioner.

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

Alternativet -e är att se till att det officiella paketet för betrodda signeringsklientverktyg är installerat. Det här kommandot installerar den senaste versionen som standard. Om du vill ange en version lägger du till en -v <version> med önskad version i kommandot .

Installera från PowerShell

Om du vill installera klientverktygen för betrodd signering med PowerShell startar du PowerShell som administratör och kör följande kommando:

$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

Sammanfattning av manuella konfigurationssteg

  1. Ladda ned och installera SignTool.
  2. Ladda ned och installera .NET 8 Runtime.
  3. Ladda ned och installera dlib-paketet för betrodd signering.
  4. Skapa en JSON-fil för att ange ditt konto för betrodd signering och en certifikatprofil.
  5. Om du vill signera en fil anropar du SignTool.

Ladda ned och installera SignTool

Betrodd signering kräver att SignTool används för att signera filer i Windows, särskilt versionen av SignTool.exe som finns i Windows 10 SDK 10.0.2261.755 eller senare. Du kan installera hela Windows 10 SDK via Visual Studio Installer eller ladda ned och installera det separat.

Så här laddar du ned och installerar SignTool:

  1. Ladda ned den senaste versionen av SignTool och Windows Build Tools NuGet på Microsoft.Windows.SDK.BuildTools.

  2. Installera SignTool från Windows SDK (lägsta version: 10.0.2261.755, 20348 Windows SDK-versionen stöds inte med vår dlib).

Ett annat alternativ är att använda den senaste nuget.exe-filen för att ladda ned och extrahera det senaste Windows SDK Build Tools NuGet-paketet med hjälp av PowerShell:

  1. Ladda ned nuget.exe genom att köra följande nedladdningskommando:

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Ladda ned och extrahera Windows SDK Build Tools NuGet-paketet genom att köra följande installationskommando:

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

Ladda ned och installera .NET 8.0 Runtime

De komponenter som SignTool använder för att gränssnitt med betrodd signering kräver installation av .NET 8.0 Runtime Du behöver bara kärn-.NET 8.0 Runtime. Kontrollera att du installerar rätt plattformskörning beroende på vilken version av SignTool du tänker köra. Eller så kan du helt enkelt installera båda

Till exempel:

Ladda ned och installera dlib-paketet för betrodd signering

Så här laddar du ned och installerar DLIB-paketet för betrodd signering (en .zip fil):

  1. Ladda ned Dlib-paketet för betrodd signering.

  2. Extrahera det dlib-zippade innehållet för betrodd signering och installera det på din signeringsnod i valfri katalog. Noden måste vara den nod där du använder SignTool för att signera filer.

Ett annat alternativ är att ladda ned dlib-paketet För betrodd signering via NuGet liknande Windows SDK Build Tools NuGet-paketet:

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

Skapa en JSON-fil

Om du vill signera med hjälp av betrodd signering måste du ange information om ditt betrodda signeringskonto och certifikatprofil som skapades som en del av förutsättningarna. Du anger den här informationen i en JSON-fil genom att utföra följande steg:

  1. Skapa en ny JSON-fil (till exempel metadata.json).

  2. Lägg till de specifika värdena för ditt betrodda signeringskonto och certifikatprofil i JSON-filen. Mer information finns i metadata.sample.json fil som ingår i Dlib-paketet för betrodd signering eller använd följande exempel:

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

    "Endpoint" URI-värdet måste vara en URI som överensstämmer med den region där du skapade ditt betrodda signeringskonto och certifikatprofil när du konfigurerade dessa resurser. Tabellen visar regioner och deras motsvarande URI:er.

    Region Fält för regionklass Slutpunkts-URI-värde
    USA, östra EastUS https://eus.codesigning.azure.net
    USA, västra 3 [1] WestUS3 https://wus3.codesigning.azure.net
    Västra centrala USA WestCentralUS https://wcus.codesigning.azure.net
    Västra USA 2 WestUS2 https://wus2.codesigning.azure.net
    Europa, norra NorthEurope https://neu.codesigning.azure.net
    Västeuropa Västeuropa https://weu.codesigning.azure.net

    1 Det valfria "CorrelationId" fältet är ett täckande strängvärde som du kan ange för att korrelera signeringsbegäranden med dina egna arbetsflöden, till exempel byggidentifierare eller datornamn.

Autentisering

Den här uppgiften utför autentisering med DefaultAzureCredential, som försöker utföra en serie autentiseringsmetoder i ordning. Om en metod misslyckas försöker den nästa tills autentiseringen lyckas.

Varje autentiseringsmetod kan inaktiveras individuellt för att undvika onödiga försök.

När du till exempel autentiserar med EnvironmentCredential specifikt inaktiverar du de andra autentiseringsuppgifterna med följande indata:

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

På samma sätt, om du använder till exempel en AzureCliCredential , vill vi hoppa över att försöka autentisera med de flera metoder som kommer före den i ordning.

Använda SignTool för att signera en fil

Så här anropar du SignTool för att signera en fil:

  1. Anteckna var dina SDK-byggverktyg, den extraherade Azure.CodeSigning.Dlib och din metadata.json-fil finns (från tidigare avsnitt).

  2. Ersätt platshållarna i följande sökväg med de specifika värden som du antecknade i steg 1:

    & "<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>
    
  • Både x86- och x64-versionen av SignTool ingår i Windows SDK. Se till att referera till motsvarande version av Azure.CodeSigning.Dlib.dll. Föregående exempel är för x64-versionen av SignTool.
  • Se till att du använder den rekommenderade Windows SDK-versionen i de beroenden som visas i början av den här artikeln eller att dlib-filen inte fungerar.

Betrodda signeringscertifikat har tre dagars giltighet, så tidsstämpling är avgörande för fortsatt lyckad validering av en signatur utöver den tre dagar långa giltighetsperioden. Betrodd signering rekommenderar användning av Den betrodda signeringens Microsoft Public RSA Time Stamping Authority: http://timestamp.acs.microsoft.com/.

Använda andra signeringsintegreringar med betrodd signering

Du kan också använda följande verktyg eller plattformar för att konfigurera signeringsintegreringar med betrodd signering.