Signature de code en Java

16 sept. 2022

Signature de code en Java

Introduction

Cet article sera l’article par défaut après l’implémentation de la nouvelle configuration minimale requise pour la signature de code le 1er février 2017.

Pré-requis

 Ce guide suppose que vous avez déjà:

  •  Récupéré et installé votre certificat sur votre clé cryptographique
  •  Installé le JDK Java.  
  •  Des droits d’administration peuvent-être nécessaires en fonction des autorisations définies sur le dossier bin du JDK Java.

Configuration de la Signature

  1. Pour permettre au JDK d’accéder la clé cryptographique, vous devez d’abord créer un fichier de configuration. Ouvrez n’importe quel éditeur de texte et créez un fichier nommé eToken.cfg. Le fichier doit contenir 2, éventuellement 3 lignes:
    name=eToken
    library=c:\WINDOWS\system32\eTPKCS11.dll
    slot=3 

    Remarque : Le numéro d’emplacement par défaut lorsqu’il n’est pas spécifié est 0. SafeNet eToken 5100 sera automatiquement affecté à l’emplacement 0, il n’y aura donc pas besoin de la ligne d’emplacement dans le fichier .cfg. Cependant, cela peut devoir être modifié en fonction du nombre de lecteurs eTokens/SmartCard installés. Le numéro d’emplacement par défaut pour le SafeNet Ikey 4000 est l’emplacement 3. La ligne d’emplacement sera requise lors de l’utilisation d’un SafeNet iKey 4000.
  2. Enregistrez ce fichier dans le dossier bin du JDK, par défaut il s’agit:

    C:\Program Files (x86)\Java\jdk1.7.0_67\bin 
  3. Ouvrez l’invite de commande : Démarrer > Exécuter > cmd
  4. Accédez à votre dossier Bin du Java JDK:

    cd C:\Program Files (x86)\Java\jdk1.7.0_67\bin 
  5. Afin d’utiliser la clé cryptographique pour signer, vous devrez trouver l’alias de votre clé privée. Cela vous permettra de référencer le certificat approprié lors de la signature. Exécutez la commande suivante à partir du dossier bin:

    keytool -list -keystore NONE -storetype PKCS11 -providerclass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
    Entrez le mot de passe du keystore : «Votre Mot De Passe»

    Erreur Remarque : Si vous recevez l’erreur suivante : « java.security.KeyStoreException : PKCS11 not found » à ce stade. Il y a 2 problèmes potentiels avec la configuration:
    • définissez le numéro d’emplacement sur zéro dans votre fichier eToken.cfg (slot=0). Essayez à nouveau d’exécuter la commande list, en incrémentant le numéro d’emplacement de 1 à chaque itération de l’erreur. Vous devriez éventuellement recevoir l’invite Entrer le mot de passe KeyStore qui acceptera votre mot de passe Safenet de la clé cryptographique. *Voir: Configuration de la Signature Étape 1.
    • Les pilotes SafeNet ne sont pas installés correctement. Assurez-vous que les pilotes appropriés sont installés.
  6. La sortie est composée de l’alias de clé, du type de clé et de l’empreinte digitale du certificat. Nous aurons besoin de l’alias du certificat de signature de code pour signer le fichier.
    le-d0e453de-66db-414a-8fa8-0a07cfad66b5, PrivateKeyEntry, Certificate fingerprint (SHA1): 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 
  7. S’il y a plus d’un certificat sur votre clé cryptographique, vous devrez peut-être discerner quel certificat nous utiliserons. Ouvrez le client d’authentification Safenet, appuyez sur l’icône d’engrenage en haut:desk1.jpg
  8. Recherchez votre certificat de signature de code GlobalSign installé et double-cliquez dessus. Cela permettra d’extraire les détails du certificat. Sélectionnez l’onglet Détails, faites défiler vers le bas et l’empreinte numérique sera là: desk2.jpg
  9. Faites correspondre l’empreinte numérique du certificat avec l’alias approprié sur votre sortie. Dans ce cas, ce sera la première entrée:

    le-d0e453de-66db-414a-8fa8-0a07cfad66b5, PrivateKeyEntry, Certificate fingerprint (SHA1): 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 
  10. Copiez l’alias (par exemple le-d0e453de-66db-414a-8fa8-0a07cfad66b5) pour l’utiliser dans notre prochaine commande.

Signature d'un Fichier .Jar

  1. Maintenant que nous avons accédé avec succès à la clé cryptographique et reçu notre alias de certificat, nous pouvons signer le fichier .jar. Vous devrez placer le fichier .jar que vous signez dans le répertoire bin.
  2. Dans la ligne de commande, accédez au répertoire bin du SDK Java (par exemple, C:\Program Files (x86)\Java\jdk1.7.0_67\bin)

    La commande utilisée pour signer est:
    jarsigner -keystore NONE -storetype PKCS11 -tsa http://timestamp.globalsign.com/tsa/r6advanced1 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg test.jar "le-d0e453de-66db-414a-8fa8-0a07cfad66b5" 

Remarque: L’horodatage de votre code est extrêmement important et est fortement recommandé pour chaque morceau de code que vous signez. Cet horodatage permettra au fichier que vous signez de rester valide longtemps après l’expiration du certificat lui-même.

Erreurs Courantes

  1. Avertissement : La chaîne de certificats du signataire n’est pas validée.

    Vous devrez importer le certificat intermédiaire de signature de code standard GlobalSign sur votre jeton pour vous assurer que les chaînes de signature sont correctes.  Remarque : Vous devez importer le certificat intermédiaire correspondant en fonction de votre type de certificat.

Related Articles

Système d’Alerte GlobalSign

Voir les alertes de système récentes.

Voir les Alertes

Atlas Discovery

Analysez vos terminaux pour localiser tous vos Certificats.

Inscrivez-vous

Configuration Test SSL

Vérifiez l’installation de votre certificat pour les problèmes et les vulnérabilités SSL.

Contactez l’équipe support