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:
- Windows SDK-SignTool.exe (lägsta version: 10.0.2261.755)
- .NET 8 Runtime
- Microsoft Visual C++ Redistributable
- 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
- Ladda ned och installera SignTool.
- Ladda ned och installera .NET 8 Runtime.
- Ladda ned och installera dlib-paketet för betrodd signering.
- Skapa en JSON-fil för att ange ditt konto för betrodd signering och en certifikatprofil.
- 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:
Ladda ned den senaste versionen av SignTool och Windows Build Tools NuGet på Microsoft.Windows.SDK.BuildTools.
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:
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
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:
- För x64-SignTool.exe: Ladda ned .NET 8.0 Runtime – Installationsprogram för Windows x64
- För x86 SignTool.exe: Ladda ned .NET 8.0 Runtime – Windows x86 installer
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):
Ladda ned Dlib-paketet för betrodd signering.
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:
Skapa en ny JSON-fil (till exempel metadata.json).
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:
Anteckna var dina SDK-byggverktyg, den extraherade Azure.CodeSigning.Dlib och din metadata.json-fil finns (från tidigare avsnitt).
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.
GitHub Actions: Information om hur du använder en GitHub-åtgärd för betrodd signering finns i Betrodd signering – Åtgärder på GitHub Marketplace. Slutför anvisningarna för att konfigurera och använda en GitHub-åtgärd.
Azure DevOps-uppgift: Information om hur du använder Azure DevOps-uppgiften betrodd signering finns i Betrodd signering på Visual Studio Marketplace. Slutför anvisningarna för konfigurationen.
PowerShell för Authenticode: Information om hur du använder PowerShell för betrodd signering finns i Betrodd signering i PowerShell-galleriet för att installera PowerShell-modulen.
Azure PowerShell – App Control for Business CI-princip: Om du vill använda betrodd signering för kodintegritet (CI) följer du anvisningarna i Signera en ny CI-princip och läser Az.CodeSigning PowerShell-modulen.
Betrodd signerings-SDK: Om du vill skapa en egen signeringsintegrering kan du använda vår betrodda signerings-SDK med öppen källkod.
Azure.Developer.TrustedSigning.CryptoProvider: Förenklar integreringen av tjänsten med en .NET-kryptoprovider som abstraherar tjänstslutpunktsintegreringen från konsumenten.