Partager via


Configurer des intégrations de signature pour utiliser Signatures de confiance

Trusted Signing prend actuellement en charge les intégrations de signature suivantes :

  • SignTool
  • Actions GitHub
  • Tâches Azure DevOps
  • PowerShell pour Authenticode
  • Azure PowerShell (stratégie d’intégration continue Contrôle des applications pour entreprise)
  • Kit de développement logiciel (SDK) Signatures de confiance

Nous nous efforçons continuellement à prendre en charge d’autres intégrations de signatures. Nous mettons à jour la liste des intégrations prises en charge quand d’autres intégrations sont disponibles.

Cet article explique comment configurer chacune des intégrations de signatures prises en charge de Signatures de confiance.

Configurer SignTool pour utiliser Signatures de confiance

Cette section explique comment configurer SignTool pour l’utiliser avec Trusted Signing.

Prérequis

Pour accomplir les étapes décrites dans cet article, vous avez besoin de ce qui suit :

  • Compte Signatures de confiance, validation d’identité et profil de certificat.
  • Attribution individuelle ou de groupe du rôle Signataire du profil de certificat de Signatures de confiance.
  • Mise à jour ou version ultérieure de Windows 10 Version 1809/octobre 2018, Windows 11 (toutes les versions) ou Windows Server 2016 ou version ultérieure

Programme d’installation des outils clients de signature approuvée

Outils du client de signature de confiance pour SignTool.exe est un plug-in de bibliothèque qui nécessite les composants suivants :

  1. SignTool.exe, SDK Windows (version minimale : 10.0.2261.755)
  2. Runtime .NET 8
  3. Redistribuable Microsoft Visual C++
  4. Signatures de confiance Dlib client

Pour simplifier cette configuration, il existe un package d’installation MSI disponible en téléchargement avec un Setup.exe.

Installation à partir du Gestionnaire de package Windows

Le programme d’installation des outils clients de signatures de confiance est disponible sur le Gestionnaire de package Windows (WinGet).

Remarque

winget est disponible par défaut dans Windows 11 et les versions modernes de Windows 10. Par contre, il est peut-être préférable de ne pas l’installer dans les versions antérieures de Windows. Consultez la documentation de winget pour des instructions d’installation.

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

L'option -e consiste à s'assurer que le paquetage officiel Outils de signatures de confiance client est installé. Cette commande installe la dernière version par défaut. Pour spécifier une version, ajoutez a -v <version> avec la version souhaitée à la commande.

Installation à partir de PowerShell

Pour installer les outils Signature de confiance client à l'aide de PowerShell, démarrez PowerShell en tant qu'administrateur(-trice) et exécutez la commande suivante :

$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

Résumé des étapes de configuration manuelles

  1. Télécharger et installer SignTool.
  2. Télécharger et installer le runtime .NET 8.
  3. Téléchargez et installez le package dlib Signatures de confiance.
  4. Créez un fichier JSON pour fournir votre compte Signatures de confiance et un profil de certificat.
  5. Pour signer un fichier, appelez SignTool.

Télécharger et installer SignTool

La signature de confiance nécessite l’utilisation de SignTool pour signer les fichiers sous Windows, en particulier la version de SignTool.exe qui se trouve dans le Kit de développement logiciel (SDK) Windows 10 10.0.2261.755 ou une version ultérieure. Vous pouvez installer le SDK Windows 10 complet via Visual Studio Installer ou vous pouvez le télécharger et l’installer séparément.

Pour télécharger et installer SignTool :

  1. Téléchargez la dernière version de SignTool + NuGet Windows Build Tools sur : Microsoft.Windows.SDK.BuildTools.

  2. Installez SignTool à partir du SDK Windows (version minimale : 10.0.2261.755 ; la version 20348 du SDK Windows n’est pas prise en charge avec notre dlib).

Une autre option consiste à utiliser le dernier fichier nuget.exe pour télécharger et extraire le dernier package NuGet des outils de génération du SDK Windows en utilisant PowerShell :

  1. Téléchargez nuget.exe en exécutant la commande de téléchargement suivante :

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Téléchargez et extrayez le package NuGet des outils de génération du SDK Windows en exécutant la commande d’installation suivante :

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

Télécharger et installer le runtime .NET 8.0

Les composants utilisés par SignTool.exe pour interagir avec Signatures de confiance nécessitent l’installation du Runtime .NET 8.0. Vous avez uniquement besoin du Runtime .NET Core 8.0. Veillez à installer le runtime correspondant à la plateforme de la version de SignTool.exe que vous envisagez d’exécuter. Vous pouvez également installer les deux tout simplement

Par exemple :

Télécharger et installer le package dlib Signatures de confiance

Pour télécharger et installer le package dlib Signatures de confiance (un fichier .zip) :

  1. Téléchargez le package dlib Signatures de confiance.

  2. Extrayez le contenu du package dlib Signatures de confiance zippé et installez-le sur votre nœud de signature dans le répertoire de votre choix. Le nœud doit être celui dans lequel vous utilisez SignTool pour signer des fichiers.

Une autre option consiste à télécharger le package dlib de Signatures de confiance par NuGet comme le package NuGet des outils de génération du SDK Windows :

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

Créer un fichier JSON

Pour signer en utilisant Signatures de confiance, vous devez fournir les détails de votre compte Signatures de confiance et du profil de certificat qui ont été créés dans le cadre des prérequis. Effectuez les étapes suivantes pour fournir ces informations dans un fichier JSON :

  1. Créez un fichier JSON (par exemple, metadata.json).

  2. Ajoutez les valeurs spécifiques de votre compte Signatures de confiance et de votre profil de certificat au fichier JSON. Pour obtenir plus d’informations, consultez le fichier metadata.sample.json inclus dans le package dlib Signatures de confiance ou utilisez l’exemple suivant :

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

    La valeur d’URI "Endpoint" doit avoir un URI qui s’aligne sur la région dans laquelle vous avez créé votre compte Signatures de confiance et votre profil de certificat pendant la configuration de ces ressources. La table affiche les régions et leurs URI correspondants.

    Région Champs de classe de région Valeur d’URI du point de terminaison
    USA Est USAEst https://eus.codesigning.azure.net
    USA Ouest 3 [1] WestUS3 https://wus3.codesigning.azure.net
    Centre-USA Ouest USACentreOuest https://wcus.codesigning.azure.net
    USA Ouest 2 WestUS2 https://wus2.codesigning.azure.net
    Europe Nord NorthEurope https://neu.codesigning.azure.net
    Europe Ouest WestEurope https://weu.codesigning.azure.net

    1 Le champ facultatif "CorrelationId" est une valeur de chaîne opaque que vous pouvez fournir pour mettre en corrélation des requêtes de signature avec vos propres workflows, comme des identificateurs de build ou des noms d’ordinateurs.

Authentification

Cette tâche procède à l’authentification en utilisant DefaultAzureCredential, qui tente une série de méthodes d’authentification dans l’ordre. Si une méthode échoue, elle tente la suivante jusqu’à ce que l’authentification réussisse.

Chaque méthode d’authentification peut être désactivée individuellement pour éviter les tentatives inutiles.

Par exemple, lors de l’authentification avec EnvironmentCredential en particulier, désactivez les autres informations d’identification avec les entrées suivantes :

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

De même, si nous utilisons AzureCliCredential par exemple, nous voulons éviter toutes les tentatives inutiles d’authentification avec les différentes méthodes qui viennent avant celle-ci dans l’ordre.

Utiliser SignTool.exe pour signer un fichier

Pour appeler SignTool afin de signer un fichier :

  1. Notez l’emplacement de votre SDK Build Tools, du fichier Azure.CodeSigning.Dlib et de votre fichier metadata.json extraits (à partir des sections précédentes).

  2. Remplacez les espaces réservés dans le chemin d’accès suivant par les valeurs spécifiques que vous avez notées à l’étape 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>
    
  • Les versions x86 et x64 de SignTool sont incluses dans le SDK Windows. Veillez à faire référence à la version correspondante de Azure.CodeSigning.Dlib.dll. L’exemple précédent se rapporte à la version x64 de SignTool.
  • Veillez à utiliser la version de SDK Windows recommandée dans les dépendances répertoriées au début de cet article pour que le fichier dlib fonctionne.

Les certificats Signatures de confiance ayant une validité de trois jours, l’horodatage est essentiel pour assurer la validation continue d’une signature au-delà de cette période de validité de trois jours. Trusted Signing recommande l’utilisation de l’autorité d’horodatage Microsoft Public RSA de Trusted Signing : http://timestamp.acs.microsoft.com/.

Utiliser d’autres intégrations de signature avec Trusted Signing

Vous pouvez également utiliser les outils ou plateformes suivants pour configurer les intégrations de signatures avec Signatures de confiance.

  • GitHub Actions : pour découvrir comment utiliser une action GitHub pour Signatures de confiance, consultez Signatures de confiance – Actions dans Place de marché GitHub. Terminez les instructions pour configurer et utiliser une action GitHub.

  • Tâche Azure DevOps : pour utiliser la tâche Signatures de confiance Azure DevOps, consultez Signatures de confiance dans Visual Studio Marketplace. Terminez les instructions pour la configuration.

  • PowerShell pour Authenticode : pour utiliser PowerShell pour Signatures de confiance, consultez Signatures de confiance dans PowerShell Gallery pour installer le module PowerShell.

  • Azure PowerShell – Stratégie d’intégration continue Contrôle des applications pour entreprise : pour utiliser Signatures de confiance pour la signature de stratégie d’intégration continue de code, suivez les instructions fournies dans Signer une nouvelle stratégie d’intégration et consultez Module PowerShell Az.CodeSigning.

  • Kit de développement logiciel (SDK) Signatures de confiance : pour créer votre propre intégration de signature, vous pouvez utiliser notre Kit de développement logiciel (SDK) Signatures de confiance open source.

  • Azure.Developer.TrustedSigning.CryptoProvider : simplifie l’intégration du service à un fournisseur de chiffrement .NET qui extrait l’intégration du point de terminaison de service du consommateur ou de la consommatrice.