Přeskočit na obsah

Signer avec KeyLocker cloud HSM

Ce guide décrit comment signer avec un certificat Code Signing stocké dans Keylocker cloud HSM. Keylocker prend en charge toutes les plateformes et les outils de signature, comme signtool, jarsigner etc. Ce guide peut vous aider également avec Software Trust Manager de DigiCert ONE, le principe est similaire.

Compatibilité de KeyLocker

Ce modèle est-il adapté au workflow de votre organisation ? Keylocker (et Software Trust Manager via Digicert One) et ses bibliothèques prennent en charge les outils de signature tiers. Pour vérifier les formats du fichier et les outils compatibles, consultez l'article de DigiCert Signing tool integration.

Un exemple pour Signtool en version 32b et 64b :

  • SignTool (32-bit): .doc, .docm, .dot, .dotm, .msi, .cab, .exe, .dll, .mpp, .mpt, .pot, .potm, .ppa, .ppam, .pps, .ppsm, .ppt, .pptm, .pub, .vdw*, .vdx*, .vsd*, .vsdm, .vss*, .vssm, .vst*, .vstm, .vsx*, .vtx*, .wiz*, .xla, .xlam, .xls, .xlsb, .xlsm, .xlt, .xltm
  • SignTool (64-bit): .appx, .appxbundle, .arx, .cab, .cat, .cbx, .cpl, .crx, .dbx, .deploy, .dll, .drx, .efi, .exe, .js, .msi, .msix, .msixbundle, .msm, .msp, .ocx, .psi, .psm1, .stl, .sys, .vbs, .vsix, .wsf, .xsn

Assistant dans KeyLocker

Après votre connexion à KeyLocker, un assistant de configuration s'affichera pour vous aider à télécharger l'application DigiCert ONE Clients. Grâce à celle-ci, vous vous connecterez à votre compte KeyLocker sur l'ordinateur, les bibliothèques nécessaires (dont smctl) seront installées, et les variables d'authentification seront configurées dans le système. Par rapport à la procédure précédente, il s'agit d'une simplification majeure.

Lors de la première étape de l'assistant KeyLocker, téléchargez l'application DigiCert ONE Clients, installez-la et lancez-la. La connexion est la même que celle configurée dans l'interface web de KeyLocker.

Retrouvez les données d'authentification dans l'assistant KeyLocker
Retrouvez les données d'authentification dans l'assistant KeyLocker

À l'étape suivante, dans l'application desktop, installez SMCTL, qui est l'outil principal pour la signature elle-même.

Installation de SMCTL
Installation de SMCTL

Après l'installation, vous verrez le choix parmi trois modes de stockage des variables KeyLocker dans le système. Nous recommandons de conserver l'option par défaut « Store my credentials ». Les données seront enregistrées dans le système et vous n'aurez plus besoin de vous reconnecter à votre compte avant chaque signature.

Choix du mode d'authentification pour KeyLocker
Choix du mode d'authentification pour KeyLocker

Si vous choisissez l'enregistrement dans le système, sous Windows les credentials se trouveront dans le Gestionnaire d'identifiants (Credential Manager).

Les identifiants d'accès à KeyLocker sont stockés dans le Gestionnaire d'identifiants (Credential Manager)
Les identifiants d'accès à KeyLocker sont stockés dans le Gestionnaire d'identifiants (Credential Manager). Ils y resteront pour toujours et vous n'aurez pas à les saisir à nouveau.

Après la configuration des identifiants dans le système, effectuée automatiquement par l'application DigiCert ONE Clients, passez à la troisième étape de l'assistant. Celui-ci vous demandera maintenant d'exécuter la commande SMCTL healthcheck dans votre système, qui testera la communication entre l'environnement local et KeyLocker ainsi que l'authentification correcte. Tout devrait se dérouler sans problème, alors confirmez « I have run the healthcheck command in SMCTL » et cliquez sur le bouton Check Status.

Test de la configuration correcte
Test de la configuration correcte

Vous verrez la confirmation verte You're ready to start signing with SMCTL, ce qui signifie que tout est correctement configuré, que la communication fonctionne et que vous pouvez commencer à signer.

Choisissez parmi les quatre options la plateforme adéquate que vous utilisez pour la signature, et vous verrez ensuite un exemple (guide) de signature avec KeyLocker.

KeyLocker Setup Complete
KeyLocker Setup Complete

Signer des fichiers

Pour la signature, nous recommandons d'utiliser en priorité l'utilitaire SMCTL, qui fonctionne en ligne de commande (CLI). La seconde option est l'utilitaire DigiCert Click-to-sign (voir le dernier paragraphe).

Vous trouverez les guides de signature de fichiers pour les principales plateformes (Authenticode, Docker, Java...) directement dans l'interface web de KeyLocker. Après avoir terminé l'assistant (titre « Setup complete! »), vous pouvez cliquer sur l'une des plateformes proposées et l'interface vous montrera la commande prête à l'emploi avec le certificat choisi. Il suffit de la copier dans la CLI et de désigner le fichier à signer. Cela ne peut pas être plus simple !

Signer des fichiers avec SMCTL (recommandé)

Développé par Digicert, Signing Manager Controller (SMCTL) permet de signer numériquement des fichiers à l'aide d'outils tiers (vous avez toujours besoin de Signtool). SMCTL prend en charge des outils : Signtool, Apsigner, Jarsigner, Mage, NuGet. L'outil se trouve dans le dossier C:\Program Files\DigiCert\DigiCert Keylocker Tools\smctl.exe

À la dernière étape de l'assistant, cliquez sur Authenticode et, dans la boîte de dialogue suivante, choisissez le certificat disponible dans KeyLocker. Vous obtiendrez la commande complète pour signer, dans laquelle vous ajouterez la cible et que vous exécuterez localement dans votre CLI. Vous recevrez immédiatement la confirmation de la signature réussie du fichier.

Guide de signature sur la plateforme Windows - Authenticode
Guide de signature sur la plateforme Windows - Authenticode

Retrouvez l'ensemble de la documentation de SMCTL sur le site web de Digicert.

Signer des fichier avec Signtool

Signtool est un outil du Windows SDK et l'outil de signature le plus utilisé sur la plateforme Windows.

Dans la commande Signtool, il est nécessaire de spécifier le fichier que vous souhaitez signer, avec quel certificat et éventuellement les paramètres associés. Pour se référer au certificat de signature, vous pouvez laisser Signtool choisir un certificat automatiquement (depuis un stockage) ou vous pouvez sélectionner le fichier contenant le certificat (bien sur, uniquement la partie publique sans clé privée) ou utiliser le hash du certificat souhaité.

Voici un exemple de signature avec un hash du certificat :

C:\>signtool.exe sign /sha1 ecb0f10ab1XXXXXXXXXX1681fb70a31e32288263 /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 C:\Users\User\Documents\HelloSign.exe

Voici un exemple de signature avec KeyLocker et un fichier du certificat :

C:\Users\User>signtool.exe sign /csp "DigiCert Signing Manager KSP" /kc key_558469087 /f C:\Users\User\Documents\cert_558469087.crt /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 C:\Users\User\Documents\HelloSign.exe
Done Adding Additional Store
Successfully signed : C:\Users\User\Documents\HelloSign.exe

Pour vérifier la validité de la signature, utilisez la commande : signtool verify /pa /v file.exe. Le paramètre /pa est important : sans lui, signtool vérifie la signature selon les règles pour les pilotes, et une application normalement signée échouerait à la vérification. Pour retrouver les propriétés de la signature d'un fichier signé, faites un clic droit sur le fichier dans l'explorateur, puis sélectionnez « Propriétés ».

Signer des fichiers avec Jarsigner

Jarsigner est un outil qui vous permet de signer et de vérifier les fichiers .jar. Jarsigner utilise un fichier de configuration pour s'intégrer à la bibliothèque DigiCert KeyLocker PKCS11. Vous pouvez signer tout simplement à l'aide de SMCTL ou avec Jarsigner et la bibliothèque PKCS11.

Exemple de signature avec Jarsigner :

jarsigner -keystore NONE -storepass NONE -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties2.cfg -signedjar 
C:\Users\Name\Desktop\signed\signedjar.jar 
C:\Users\Name\Desktop\ToSign\jartosign.jar key3 -tsa "http://timestamp.digicert.com"

Pour vérifier la validité de la signature, utilisez la commande :

jarsigner -verify -certs -verbose <path to signed jar file>>

Retrouvez l'ensemble de la documentation de Jarsigner sur le site web de Digicert.

Signer des fichiers avec DigiCert Click-to-sign

DigiCert Click-to-sign est un interface utilisateur qui ne nécessite pas l'utilisation de la ligne de commande. Cet outil permet aux clients de signer des fichiers de manière simple. Ce principe donne le même résultat comme les outils utilisant la ligne de commande, seulement ils offrent les paramètres plus détaillés. DigiCert Click-to-sign est une solution simplifiée et suffisante pour la plupart des utilisateurs.

L'un des gros avantages de DigiCert Click-to-sign est la configuration simple. Vous passez par l'assistant de Configuration pour configurer les paramètres des droits d'accès au KeyLocker. L'assistant va tester votre connexion au cloud, mais surtout paramétrer les variables au système ! Vous ne devez rien à configurer manuellement.

Signer avec cet outil, c'est vraiment très simple. Faites un clic droit sur le fichier à signer et sélectionnez Click to Sign. Ensuite, vous pouvez signer directement ou avec une confirmation des paramètres de signature.

Récapitulation avant de signer avec DigiCert Click-to-sign
Récapitulation avant de signer avec DigiCert Click-to-sign

Retrouvez l'ensemble de la documentation de Click-to-sign sur le site web de Digicert.

Remarque : Si Click-to-sign ne fonctionne pas : définissez l'emplacement du Click-to-sign et de l'application de signature (signtool) dans les variables PATH. Séparez-les par les points-virgules. Par exemple :

Path:  C:\Program Files\DigiCert\DigiCert Keylocker Tools;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64

Integrations CI/CD

Le principal avantage du Keylocker est de pouvoir automatiser les signatures et d'intégrer le processus dans le workflow CI/CD. DigiCert a préparé certains scripts et plugins pour les outils et plateformes de développement les plus utilisés. Les plugins sont disponibles pour Azure DevOps, GitHub et Jenkins. Il propose encore plus de scripts d'intégration pour la bibliothèque PKCS11.

Retrouvez l'ensemble de la documentation dans l'article CI/CD integrations.

Vous avez des questions ?

N'hésitez pas à contacter notre support client, qui vous conseillera et vous aidera.