Freigeben über


Einrichten von Signaturintegrationen zur Verwendung der vertrauensvollen Signatur

Trusted Signing unterstützt derzeit die folgenden Signaturintegrationen:

  • SignTool
  • GitHub-Aktionen
  • Azure DevOps-Aufgaben
  • PowerShell für Authenticode
  • Azure PowerShell (CI-Richtlinie für die App-Steuerung für Unternehmen)
  • SDK für die vertrauensvolle Signatur

Wir arbeiten ständig daran, mehr Signaturintegrationen zu unterstützen. Wir aktualisieren die unterstützte Integrationsliste, sobald weitere Integrationen verfügbar sind.

In diesem Artikel wird erläutert, wie Sie alle oben genannten Signaturintegrationen für die vertrauensvolle Signatur einrichten.

Einrichten von SignTool für die vertrauensvolle Signatur

In diesem Abschnitt wird erläutert, wie Sie SignTool für die Verwendung mit Trusted Signing einrichten.

Voraussetzungen

Um die Schritte dieses Artikels abzuschließen, benötigen Sie Folgendes:

  • Trusted Signing-Konto, Identitätsüberprüfung und Zertifikatprofil.
  • Einzel- oder Gruppenzuweisung der Rolle "Signierer für Trusted Signing-Zertifikate".
  • Windows 10 Version 1809/Oktober 2018 Update oder neuer, Windows 11 (alle Versionen) oder Windows Server 2016 oder höher

Installationsprogramm für Clienttools für vertrauensvolle Signatur

Clienttools für vertrauensvolle Signatur für SignTool.exe ist ein Bibliotheks-Plug-In, das die folgenden Komponenten erfordert:

  1. Windows SDK-SignTool.exe (Mindestverision: 10.0.2261.755)
  2. .NET 8-Runtime
  3. Microsoft Visual C++ Redistributable
  4. Dlib-Client für vertrauensvolle Signatur

Um dieses Setup zu vereinfachen, gibt es ein MSI-Installationspaket, das zusammen mit einer Setup.exe zum Download zur Verfügung steht.

Installieren aus dem Windows-Paket-Manager

Das Installationsprogramm für Clienttools für vertrauensvolle Signatur ist im Windows-Paket-Manager (WinGet) verfügbar.

Hinweis

winget ist standardmäßig in Windows 11 und modernen Versionen von Windows 10 verfügbar. winget kann jedoch nicht in älteren Versionen von Windows installiert werden. Informationen zur Installation finden Sie in der winget-Dokumentation.

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

Die -e-Option besteht darin, sicherzustellen, dass das offizielle Paket für Clienttools für vertrauensvolle Signatur installiert ist. Dieser Befehl installiert standardmäßig die neueste Version. Fügen Sie zum Angeben einer Version -v <version> mit der gewünschten Version zum Befehl hinzu.

Installieren von PowerShell

Um die Clienttools für vertrauensvolle Signatur mit PowerShell zu installieren, starten Sie PowerShell als Administrator und führen Sie den folgenden Befehl aus:

$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

Zusammenfassung der manuellen Einrichtungsschritte

  1. Herunterladen und Installieren von SignTool
  2. Herunterladen und Installieren der .NET 8-Runtime
  3. Herunterladen und Installieren des Dlib-Pakets für die vertrauensvolle Signatur.
  4. Erstellen einer JSON-Datei zum Angeben des Kontos und eines Zertifikatprofils für die vertrauensvolle Signatur.
  5. Rufen Sie SignTool auf, um eine Datei zu signieren.

Herunterladen und Installieren von SignTool

Die vertrauensvolle Signatur erfordert die Verwendung von SignTool zum Signieren von Dateien unter Windows, insbesondere die Version von „SignTool.exe“ aus dem Windows 10 SDK 10.0.2261.755 oder höher. Sie können das vollständige Windows 10 SDK über den Visual Studio-Installer installieren oder es separat herunterladen und installieren.

So laden Sie SignTool herunter und installieren SignTool

  1. Laden Sie die aktuelle Version von SignTool und Windows Build Tools NuGet hier herunter: Microsoft.Windows.SDK.BuildTools.

  2. Installieren Sie SignTool aus dem Windows SDK (Mindestversion: 10.0.2261.755. Die Windows SDK-Version 20348 wird mit dlib nicht unterstützt.)

Eine weitere Möglichkeit besteht darin, die neueste herunterladbare Version von nuget.exe zu verwenden und das neueste NuGet-Paket für Windows SDK-Buildtools zu extrahieren (mit PowerShell):

  1. Laden Sie nuget.exe herunter, indem Sie den folgenden Befehl zum Herunterladen ausführen:

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Laden Sie das zutreffende NuGet-Paket für Windows SDK Buildtools herunter und entpacken Sie es, indem Sie den folgenden Installationsbefehl ausführen:

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

Herunterladen und Installieren der .NET 8.0-Runtime

Die Komponenten, die SignTool als Schnittstelle für die vertrauensvolle Signatur verwendet, erfordern die Installation der .NET 8.0-Runtime. Sie benötigen nur die .NET Core 8.0-Runtime. Installieren Sie unbedingt die richtige Plattformruntime, je nachdem, welche Version von SignTool Sie ausführen möchten. Sie können auch einfach beide installieren.

Zum Beispiel:

Herunterladen und Installieren des Dlib-Pakets für die vertrauensvolle Signatur

So laden Sie das Dlib-Paket für die vertrauensvolle Signatur (eine ZIP-Datei) herunter und installieren es

  1. Laden Sie das Dlib-Paket für die vertrauensvolle Signatur herunter.

  2. Extrahieren Sie den gezippten Dlib-Inhalt für die vertrauensvolle Signatur, und installieren Sie ihn auf Ihrem Signaturknoten in einem Verzeichnis Ihrer Wahl. Der Knoten muss der Knoten sein, auf dem Sie SignTool zum Signieren von Dateien verwenden.

Eine weitere Möglichkeit besteht darin, das Paket Trusted Signing dlib über NuGet herunterzuladen, ähnlich wie das NuGet-Paket von Windows SDK-Buildtools:

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

Erstellen einer JSON-Datei

Für das Signieren mit der vertrauensvollen Signatur müssen Sie die Details Ihres Kontos für die vertrauensvolle Signatur und Ihres Zertifikatprofils angeben, die im Rahmen der Voraussetzungen erstellt wurden. Sie geben diese Informationen in einer JSON-Datei an, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine neue JSON-Datei (z. B. metadata.json).

  2. Fügen Sie entsprechenden Werte für Ihr Konto für die vertrauensvolle Signatur und Ihr Zertifikatprofil zur JSON-Datei hinzu. Weitere Informationen finden Sie in der Datei metadata.sample.json, die im Dlib-Paket für die vertrauensvolle Signatur enthalten ist, oder verwenden Sie das folgende Beispiel:

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

    Der URI-Wert "Endpoint" muss ein URI sein, der an der Region ausgerichtet ist, in der Sie Ihr Konto für die vertrauensvolle Signatur und das Zertifikatprofil erstellt haben, als Sie diese Ressourcen eingerichtet haben. Die folgende Tabelle enthält Regionen und ihre entsprechenden URIs.

    Region Regionsklassenfelder Endpunkt-URI-Wert
    East US EastUS https://eus.codesigning.azure.net
    USA, Westen 3 [1] WestUS3 https://wus3.codesigning.azure.net
    USA, Westen-Mitte WestCentralUS https://wcus.codesigning.azure.net
    USA, Westen 2 WestUS2 https://wus2.codesigning.azure.net
    Nordeuropa Europa, Norden https://neu.codesigning.azure.net
    Europa, Westen Europa, Westen https://weu.codesigning.azure.net

    1 Das optionale Feld "CorrelationId" ist ein nicht transparenter Zeichenfolgenwert, den Sie bereitstellen können, um Signieranforderungen mit Ihren eigenen Workflows zu korrelieren, z. B. Buildbezeichner oder Computernamen.

Authentifizierung

Diese Aufgabe führt die Authentifizierung mit DefaultAzureCredential aus, die eine Reihe von Authentifizierungsmethoden versucht. Wenn eine Methode fehlschlägt, wird die nächste versucht, bis die Authentifizierung erfolgreich ist.

Jede Authentifizierungsmethode kann einzeln deaktiviert werden, um unnötige Versuche zu vermeiden.

Deaktivieren Sie beispielsweise bei der Authentifizierung mit EnvironmentCredential die anderen Anmeldeinformationen mit den folgenden Eingaben:

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

Wenn Sie z. B. ein AzureCliCredential verwenden, können Sie auch den Versuch überspringen, sich mit den verschiedenen Methoden zu authentifizieren, die in der Folge vorhanden sind.

Verwenden von SignTool zum Signieren einer Datei

So rufen Sie SignTool auf, um eine Datei zu signieren

  1. Notieren Sie sich, wo sich Ihre SDK-Buildtools, das extrahierte Paket Azure.CodeSigning.Dlib und die Datei metadata.json befinden (siehe vorherige Abschnitte).

  2. Ersetzen Sie die Platzhalter im folgenden Pfad durch die spezifischen Werte, die Sie in Schritt 1 notiert haben:

    & "<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>
    
  • Sowohl die x86- als auch die x64-Version von SignTool sind im Windows SDK enthalten. Achten Sie darauf, auf die entsprechende Version von Azure.CodeSigning.Dlib.dll zu verweisen. Das obige Beispiel gilt für die x64-Version von SignTool.
  • Stellen Sie sicher, dass Sie die empfohlene Windows SDK-Version in den Abhängigkeiten verwenden, die am Anfang dieses Artikels aufgeführt sind. Andernfalls funktioniert die Dlib-Datei nicht.

Zertifikate für die vertrauensvolle Signatur haben eine Gültigkeit von drei Tagen. Daher ist der Zeitstempel entscheidend für die weitere erfolgreiche Validierung einer Signatur über diese drei Tage hinaus. Trusted Signing empfiehlt die Verwendung von Microsoft Public RSA Time Stamping Authority von Trusted Signing: http://timestamp.acs.microsoft.com/.

Verwenden anderer Signaturintegrationen mit Trusted Signing

Sie können auch die folgenden Tools oder Plattformen verwenden, um Signaturintegrationen mit der vertrauensvollen Signatur einzurichten.

  • GitHub Actions: Informationen zur Verwendung einer GitHub-Aktion für die vertrauensvolle Signatur finden Sie unter Vertrauensvolle Signatur – Aktionen im GitHub-Marketplace. Führen Sie die Anweisungen zum Einrichten und Verwenden einer GitHub-Aktion aus.

  • Azure DevOps-Aufgabe: Informationen zur Verwendung der Azure DevOps-Aufgabe für die vertrauensvolle Signatur finden Sie unter Vertrauensvolle Signatur in Visual Studio Marketplace. Führen Sie die Anweisungen für das Setup aus.

  • PowerShell für Authenticode: Informationen zur Verwendung von PowerShell für die vertrauensvolle Signatur finden Sie unter Vertrauensvolle Signatur im PowerShell-Katalog, um das PowerShell-Modul zu installieren.

  • Azure PowerShell – CI-Richtlinie für die App-Steuerung für Unternehmen: Befolgen Sie die Anweisungen unter Signieren einer neuen CI-Richtlinie, und sehen Sie sich die Informationen unter PowerShell-Modul „Az.CodeSigning“ an, um die vertrauensvolle Signatur für die CI-Richtliniensignatur (Codeintegrität) zu verwenden.

  • SDK für die vertrauensvolle Signatur: Zum Erstellen einer eigenen Signaturintegration können Sie unser Open-Source-SDK für die vertrauensvolle Signatur verwenden.

  • Azure.Developer.TrustedSigning.CryptoProvider: Vereinfacht die Integration des Diensts mit einem .NET-Kryptoanbieter, der die Integration des Dienstendpunkts vom Verbraucher abstrahiert.