Cette page Web fournit des instructions sur l'utilisation d'un SSL.com OV or EV certificat de signature de code avec SignTool de Microsoft et SSL.com SSL Manager.
Ces instructions supposent que votre certificat de signature de code a été installé ou que vous l'avez sur un jeton matériel. Pour la signature de code basée sur le cloud à l'aide de la plate-forme eSigner, veuillez vous référer au page d'aperçu et cette guide d'inscription.
N'oubliez pas que pour les certificats de signature de code OV et EV basés sur le matériel, la clé privée n'existe que sur le token USB FIPS YubiKey qui vous a été envoyé et que le jeton doit être attaché à l'ordinateur utilisé pour signer l'application. Les utilisateurs de Windows avec des jetons YubiKey FIPS doivent également télécharger et installer le Mini pilote de carte à puce YubiKey avant d'utiliser leur jeton.
Signer un exécutable avec Yubikey
Installer Windows SDK et SignTool
SignTool est inclus avec SDK Windows 10. Après l'installation, SignTool sera situé sous:
C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe
Accueille Powershell
ou Powershell fenêtre de commande en recherchant «Powershell» dans le Accueille menu et en cliquant sur l'application de bureau.
Powershell est une interface de ligne de commande vers les services de base de Windows. Vous pouvez l'utiliser pour exécuter SignTool et signer votre code.
Pour code signature, connectez votre clé USB à votre ordinateur (si vous ne l'avez pas déjà fait). Si vous utilisez eSigner, installez Adaptateur de clé cloud eSigner
N'oubliez pas que la clé privée n'existe que sur le jeton USB qui vous a été envoyé et que le jeton doit être attaché à l'ordinateur utilisé pour signer l'application. Cette étape doit être ignorée si vous utilisez un certificat de signature de code OV.
Signe Exécutable
Vous pouvez signer un exécutable en exécutant la commande suivante dans la fenêtre Powershell. Si vous utilisez la signature cloud eSigner avec signtool.exe, assurez-vous d'installer Signataire électronique CKA
. \ signtool.exe sign / fd sha256 / a "C: \ chemin \ vers \ MyExecutable.exe"
- Votre
/fd
L'option sélectionne l'algorithme de résumé à utiliser lors de la signature. Versions Windows 10 SDK, HLK, WDK et ADK 20236 et ci-dessus exigent que cette option soit définie lors de la signature. SHA256 est recommandé sur SHA1 pour la sécurité. - Votre
/a
L'option indique à SignTool de trouver automatiquement un certificat de signature de code approprié pour votre exécutable. - Vous serez invité à saisir le code PIN de votre clé USB. Si vous avez besoin d'aide pour trouver votre code PIN, veuillez vous référer à ce mode d'emploi.
Sélection d'un certificat de signature
Spécifiez le nom du sujet
Si vous disposez de plusieurs codes de signature de jetons USB ou de certificats installés, vous pouvez spécifier le certificat vous souhaitez utiliser en incluant son Nom du sujet via le /n
option.
Vous pouvez trouver le nom du sujet de votre certificat à l'aide de l'outil de gestion des certificats de Microsoft. certmgr. Ouvrez l'outil depuis le menu Démarrer et recherchez votre certificat dans le dossier « Personnel », sous « Certificats », comme indiqué dans l'image ci-dessous. Le nom du sujet est le champ « Délivré à » dans certmgr.
Dans l'image ci-dessus, le nom du sujet du certificat est example
. Vous pouvez spécifier cette valeur dans SignTool avec la commande suivante.
. \ signtool.exe sign / fd sha256 / n "exemple" "C: \ chemin \ vers \ MyExecutable.exe"
Spécifier le hachage SHA1
Si vous avez plusieurs certificats avec le même nom de sujet, vous pouvez également utiliser le hachage SHA1 (ou «empreinte numérique») d'un certificat pour le sélectionner pour la signature. Remplacer THUMBPRINT
dans la commande ci-dessous avec le hachage SHA1 réel de votre certificat. Vous pouvez trouver cette valeur en affichant les détails du certificat dans certmgr et en recherchant le Thumbprint
(assurez-vous de supprimer tous les espaces de l'empreinte numérique avant de l'utiliser dans votre commande).
. \ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C: \ chemin \ vers \ MyExecutable.exe"
Utilisez un fichier PKCS # 12 / PFX
Si vous avez un certificat de signature de code et une clé privée dans un fichier PKCS # 12 (également appelé fichier PFX ou P12), vous pouvez spécifier le fichier et son mot de passe sur la ligne de commande:
. \ signtool.exe sign / fd sha256 / f "C: \ chemin \ vers \ MyCertificate.pfx" / p mot de passe "C: \ chemin \ vers \ MyExecutable.exe"
Horodater
L'horodatage de votre code lui permettra d'être approuvé après l'expiration de votre certificat de signature de code. Si vous souhaitez ajouter un horodatage dans le fichier binaire signé, vous pouvez le faire en utilisant SignTool /tr
, qui doit être suivie de la définition de l'algorithme de résumé d'horodatage avec /td
. La commande dans l'extrait ci-dessous inclut un horodatage de SSL.comservice d'horodatage lors de la signature d'un exécutable.
. \ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C: \ chemin \ vers \ MyExecutable.exe"
/tr
option (spécifier l'URL du serveur d'horodatage RFC 3161), ne sauraient /t
(URL du serveur d'horodatage), incompatible avec le serveur d'horodatage de SSL.com./td
option must suivre l' /tr
option. Si l'algorithme de résumé d'horodatage est spécifié avant le serveur d'horodatage, l'algorithme SHA-1 par défaut sera utilisé. Versions Windows 10 SDK, HLK, WDK et ADK 20236 et ci-dessus nécessitent l'utilisation de /tr
lors de l'horodatage. SHA256 est recommandé par rapport à SHA1 pour la sécurité.Si vous rencontrez cette erreur :
The timestamp certificate does not meet a minimum public key length requirement
, vous devez contacter votre fournisseur de logiciels pour autoriser les horodatages des clés ECDSA.Si votre fournisseur de logiciels n'a aucun moyen d'autoriser l'utilisation du point de terminaison normal, vous pouvez utiliser ce point de terminaison hérité
http://ts.ssl.com/legacy
pour obtenir un horodatage d'une unité d'horodatage RSA.Autres Options
Les autres options importantes de SignTool sont:
/d
: Ajoutez une description du code signé. Par exemple,/d "test code"
./du
: Ajoutez une URL avec une description détaillée du code signé. Par exemple,/du https://your_website.tld/project/description
.
Utiliser toutes les options ci-dessus (mais en omettant /a
, /sha1
, ou /f
car nous spécifions le nom du sujet du certificat avec /n
, notre ligne de commande ressemble à:
signtool.exe sign / n "exemple" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "test code" / du https: //votre_site_web.tld/project/description "C: \ chemin \ vers \ MyExecutable.exe "
Vérifier la signature
Utilisez cette commande pour vérifier votre code signé (notez que le /pa
l'option doit être présente dans la commande):
. \ signtool.exe verify / pa "C: \ chemin \ vers \ MyExecutable.exe"
Si votre fichier a été signé avec succès, vous devriez voir une sortie comme celle-ci:
Fichier: C: \ chemin \ vers \ MyExecutable.exe Horodatage de l'algorithme d'indexation ================================== ===== 0 sha256 RFC3161 Vérifié avec succès: C: \ chemin \ vers \ MyExecutable.exe
Vous pouvez également vérifier qu'un fichier a été signé en cliquant avec le bouton droit sur son icône et en sélectionnant Propriétés dans le menu, puis en sélectionnant Signatures numériques languette. Affichez les détails d'une signature en la sélectionnant et en cliquant sur le bouton Plus de détails .
Ici, nous pouvons voir que le fichier contient une signature numérique valide, créée par SSL Corp le 28 juin 2020.
Signature d'un exécutable avec SSL Manager
Si vous préférez une approche plus graphique, vous pouvez utiliser SSL.comle logiciel interne de SSL Manager, pour signer vos fichiers. De nombreux clients préfèrent utiliser SSL Manager car il offre l'avantage supplémentaire d'avoir un accès facile à tous vos certificats dans une interface unifiée. Pour obtenir des instructions sur le téléchargement et l'installation SSL Manager, veuillez vous référer à notre guide d'installation.
Pour signer un exécutable, commencez par sélectionner Signature de code> Paquet de codes de signature et d'horodatage SSL Managermenu de.
Dans le formulaire de signature de code, vous pouvez sélectionner l'exécutable et le certificat de signature de code (à partir d'un fichier ou d'un magasin de certificats) et l'un des serveurs d'horodatage disponibles. Lorsque vous avez terminé, cliquez sur le Signe bouton pour signer votre code. Vous serez invité à saisir le code PIN de votre clé USB.
Outre la signature de code, SSL Manager offre de nombreuses fonctionnalités puissantes. Pour plus de détails, veuillez consulter SSL Managerdocumentation de, en particulier le Menu de signature de code.
Signature de code avec un token USB Thales SafeNet (Gemalto)
Cette section montre comment signer du code à l'aide du certificat de signature de code SSL.com, du jeton USB Thales SafeNet (Gemalto) et du client d'authentification Safenet.
Le token Thales SafeNet peut stocker tous types de certificats de signature de code SSL.com et leurs clés privées. Il s'agit notamment des certificats de signature de code d'identité personnelle, des certificats de signature de code de validation d'organisation et des certificats de signature de code de validation étendue.
SafeNet Authentication Client est une solution middleware qui gère le portefeuille complet d'authentificateurs basés sur des certificats SafeNet de Thales. Cela inclut les eTokens, les cartes à puce SafeNet IDPrime, SafeNet IDPrime Virtual et les combinaisons PKI/Appareils FIDO.
Pour obtenir des instructions sur la façon de modifier votre mot de passe de signature de code pour les jetons Thales SafeNet (Gemalto) ou de retrouver l'accès à un jeton verrouillé, veuillez consulter cet article SSL.com : Comment modifier le mot de passe de votre token Thales SafeNet/Gemalto
Exigences
- Kit de développement Windows installé sur votre ordinateur
- Client d'authentification SafeNet installé sur votre ordinateur. Pour obtenir des instructions, reportez-vous à ce guide SSL.com : Téléchargement du client d'authentification SafeNet pour les certificats de signature de code
- Un token Thales SafeNet contenant un certificat de signature de code préinstallé SSL.com. Le token Thales SafeNet doit être activé en suivant ces étapes :
- Localisez le numéro de série de votre token Thales. Il s'agit d'une série de lettres et de chiffres imprimés sur la surface de votre jeton.
- Connectez-vous à votre compte SSL.com.
- Cliquez Commandes onglet, suivi de download lien de votre commande de certificat pour afficher ses détails. Sur le jetons physiques rubrique, activez votre token Thales en plaçant son numéro de série sur le champ prévu à cet effet. Lors de l'activation de votre token Thales, le jetons physiques section affichera votre Code PIN d'activation et PIN administrateurL’ Code PIN d'activation est également connu sous le nom de Mot de passe du jeton et vous serez invité à le saisir lors de la signature de votre fichier. PIN administrateur est également connu sous le nom de PUK – ceci est nécessaire lors de la définition d'un nouveau mot de passe de jeton dans un jeton verrouillé.
Étapes pour signer du code avec un jeton Thales SafeNet
- Connectez votre Jeton Thales SafeNet sur votre ordinateur.
- Ouvert Client d'authentification Safenet.
- Configurez la commande pour signer votre code :
signtool sign /tr http://ts.ssl.com /td sha256 /fd sha256 /a "PATH_OF_FILE_TO_BE_SIGNED"
Légende:
/fdsha256 sélectionne l'algorithme de résumé à utiliser lors de la signature.
/ tr http://ts.ssl.com spécifie l'adresse du serveur d'horodatage
/tdsha256 spécifie l'algorithme de résumé d'horodatage
/a demande à SignTool de trouver automatiquement un certificat de signature de code approprié pour votre fichier.
chemin de fichier signable: Le chemin de votre fichier doit être placé entre guillemets doubles. Prenez note d'inclure le nom de votre fichier signable dans le chemin. Exemple: /fichier de test.dll
Notes: Certains utilisateurs peuvent rencontrer cette erreur avec la commande sign : « Signtool » n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier batch. La solution à cette erreur est de supprimer le texte outil de signalisation à partir de la commande et remplacez-le par le chemin de signtool.exe. Le chemin doit être entouré de guillemets doubles.
"C:\Program Files (x86)\Windows Kits\10\folder\folder\x86\signtool.exe" signe /tr http://ts.ssl.com/ /td sha256 /fd sha256 /a "C:\ Utilisateurs\Admin\Documents\fichiers de test\fichier de test.dll"
- Courir Invite de commandes en tant qu'administrateur et placez la commande sign. Ensuite, appuyez sur Entrer.
- Vous verrez le message Ajout d'un magasin supplémentaire terminé. Peu après, vous serez invité à placer votre Mot de passe du jeton. Comme indiqué dans le Exigences section ci-dessus, le mot de passe du jeton est le même que celui Code PIN d'activation et cela peut être consulté via votre page de commande de certificat SSL.com. Clique le OK bouton pour finaliser la signature du code.
- Succès! Votre dossier est désormais signé. L'invite de commande vous informera de la signature réussie.
Options de signature du code
1. Spécifiez le nom du sujet du certificat
Si vous possédez plusieurs jetons ou certificats USB de signature de code, vous pouvez sélectionner le certificat spécifique à utiliser en incorporant son nom de sujet via l'option /n.
Vous pouvez afficher le nom du sujet de votre certificat en cliquant sur l'icône d'engrenage dans SafeNet Authentication Client pour permettre une vue avancée. Ensuite, cliquez sur la flèche pour Certificats d'utilisateur pour afficher tous les certificats installés dans le token. Copiez le nom du certificat que vous souhaitez utiliser.
La commande sign utilisant le /n
l’option ressemble à ce qui suit. Le nom du sujet de votre certificat doit être placé entre guillemets doubles.
« CHEMIN DE SIGNTOOL.EXE » signe /tr http://ts.ssl.com/ /td sha256 /fd sha256 /n « NOM DU SUJET DU CERTIFICAT » « PATH_OF_FILE_TO_BE_SIGNED »
2. Spécifiez l'empreinte numérique du certificat
Si vous possédez plusieurs certificats portant des noms de sujet identiques, vous pouvez en distinguer et en sélectionner un à signer en utilisant son hachage SHA1, communément appelé « empreinte ». Pour ce faire, remplacez EMPREINTE dans la commande suivante avec le hachage SHA1 réel de votre certificat.
Vous pouvez afficher la valeur de l'empreinte numérique de votre certificat en cliquant sur l'icône d'engrenage dans SafeNet Authentication Client pour permettre une vue avancée. Ensuite, cliquez sur la flèche pour Certificats d'utilisateur. Double-cliquez sur le certificat que vous souhaitez utiliser. Clique le Plus de détails languette. Enfin, faites défiler jusqu'à Empreinte champ.
Dans la commande signer, remplacez le texte EMPREINTE avec la valeur réelle de l'empreinte de votre certificat.
Signe « CHEMIN DE SIGNTOOL.EXE » /tr http://ts.ssl.com/ /td sha256 /fd sha256 /SHA1 THUMBPRINT « PATH_OF_FILE_TO_BE_SIGNED »
Vérifier la signature
Vous pouvez vérifier la signature numérique appliquée en cliquant avec le bouton droit sur le fichier signé pour voir ses propriétés.
- Cliquez Signatures numériques languette. Passez votre souris sur le Liste des signatures et cliquez sur le nom affiché de votre certificat pour le mettre en surbrillance. Clique le Plus de détails case pour continuer.
- Vous pourrez voir le nom du certificat qui a été utilisé pour signer le fichier ainsi que la date et l'heure de sa signature et de son horodatage.