Signer avec signtool (base de registre / À partir de IE7 Vista)
Signature avec assistant (uniquement avec signtool v6.0 et inférieur)
Pour signer un composant Microsoft .CAB .EXE .DLL .OCX .XAP, utilisez la méthode ci-dessous.Pré-requis: votre clef privée et certificat se trouve dans la base de registre (installation via IE7 sous Vista par exemple).
- Lancez l'outil à fenêtre signtool
C:\Program Files\Microsoft Platform SDK\Bin> signtool signwizard
- Sélectionnez le fichier à signer
- Choisissez le mode standard (pas personnalisé)
- Optez pour choisir un certificat dans votre registre
- Sélectionnez votre certificat
- Dans le rubrique horodatage, mettez http://timestamp.digicert.com?alg=sha256
- Vérifiez le récapitulatif puis validez.
Utilisation cli de signtool
Il est également possible de signer en ligne de commande avec signtool.signtool sign /as /n "NOM_DE_CERTIFICAT" /tr http://timestamp.digicert.com?alg=sha256 /td SHA256 /fd SHA256 "CHEMIN_VERS_VOTRE_EXECUTABLE"L’argument /n est utilisé pour sélectionner votre certificat. Ce dernier se doit d’être placé dans le magasin Personnel ou Personnal.
L'argument /fd permet de choisir l'algorithme de signature. Le défaut étant SHA1.
/as permet d'ajouter une signature en la sélectionnant comme principale.
Les arguments /tr et /td sont respectivement dédiées au serveur d'horodatage suivant la RFC 3161 et l'algorithme de hashage utilisé par ce dernier. Le serveur fourni dans cet exemple est le serveur d'horodatage de DigiCert. Pour les certificats Globalsign, vous pouvez utiliser le serveur suivant : http://timestamp.globalsign.com/?signature=sha2 .
Double signature d'exécutable
Il vous est possible de signer votre exécutable en SHA1 et SHA2 afin de garantir la plus grande compatibilité de votre signature. Attention, cela fonctionne uniquement pour les exécutables (.exe) et non pour les installeurs .msi. Exécutez les deux commandes suivantes :signtool sign /n "NOM_DE_CERTIFICAT" /t http://timestamp.digicert.com?alg=sha1 /fd SHA1 "CHEMIN_VERS_VOTRE_EXECUTABLE" signtool sign /as /n "NOM_DE_CERTIFICAT" /tr http://timestamp.digicert.com?alg=sha256 /td SHA256 /fd SHA256 "CHEMIN_VERS_VOTRE_EXECUTABLE"La première commande sert à signer le fichier en SHA1, la seconde en SHA2. La signature SHA2 est définie comme prioritaire. Le serveur de timestamp fourni pour la signature SHA1 est au format Microsoft. L'exemple est encore une fois pour les certificats DigiCert.
Pour les produits Globalsign vous pouvez utiliser les serveurs suivants :
Format Microsoft : http://timestamp.globalsign.com/scripts/timstamp.dll
Format RFC 3161 : http://timestamp.globalsign.com/?signature=sha2
Cas du renouvellement (CN identique)
Si vous avez plusieurs certificats possédant le même CN, Windows devrait automatiquement sélectionner le certificat le plus adéquant. Si ce n'est pas le cas, vous pouvez spécifier manuellement l'empreinte SHA1 du certificat via le paramètre /sha1 suivi de l'empreinte.signtool sign /as /n "NOM_DE_CERTIFICAT" /tr http://timestamp.digicert.com?alg=sha256 /td SHA256 /fd SHA256 /sha1 EMPREINTE_SHA1_DE_VOTRE_CERTIFICAT "CHEMIN_VERS_VOTRE_EXECUTABLE"
Documentation Externe
- Documentation officielle Signtool
- Exemples d'utilisation de Signtool
- Quand faire confiance à un éditeur de logiciel
- Règles de signature et de timestamping avec Authenticode
- Documentation DigiCert
- Microsoft TechNet : Authenticode
- MSDN: Comment : signer une application Visual Basic ou Visual C# (smart devices)
- Double signature d'exécutable
- Signature sous Windows
Dernière modification le 12/05/2020 14:48:38 --- [Chercher]