Guide de signature de code Java

Ce guide vous permettra de commencer à signer votre code Java avec un VO / IV or EV certificat de signature de code de SSL.com. Ces instructions supposent que le kit de développement Java (JDK) est installé sur votre ordinateur et que le keytool et jarsigner Les commandes sont incluses dans votre PATH. Les instructions de signature de code Yubikey supposent que votre certificat est installé dans l'emplacement 9a d'un YubiKey FIPS jeton, car ils sont expédiés par SSL.com.

À partir du 1 juin 2023, les certificats de signature de code de validation d'organisation (OV) et de validation individuelle (IV) de SSL.com ont été émis soit sur des jetons USB Federal Information Processing Standard 140-2 (FIPS 140-2), soit via notre service de signature de code cloud eSigner. Ce changement est conforme avec les nouvelles exigences de stockage de clés du forum Certificate Authority/Browser (CA/B) pour renforcer la sécurité des clés de signature de code.

Si vous n'avez pas encore de certificat de signature de code et que vous n'êtes pas sûr du type dont vous avez besoin, veuillez lire cette FAQ.

SSL.com Signature de code OV / IV Les certificats sont un moyen économique de protéger votre code contre les altérations et les compromis non autorisés, et sont disponibles pour aussi peu que 64.50 $ par année.

COMMANDER MAINTENANT

Signature de code OV/IV (uniquement pour les certificats OV/IV délivrés avant le 1er juin 2023)

configuration

Méthode 1: générer CSR et fichier PFX dans le navigateur

La méthode la plus simple pour démarrer rapidement avec la signature de code Java consiste à générer un CSR et PFX lors de la récupération de votre certificat sur SSL.com et installez-le dans un nouveau fichier de clés Java.

Remarque: Il est également possible de signer votre .jar directement avec un fichier PFX non converti en ajoutant le -storetype pkcs12 Drapeau au jarsigner commander.
  1. Suivez les étapes indiquées dans Commande et récupération de certificats de signature de code pour commander votre certificat et télécharger un fichier PFX avec votre certificat et votre clé privée.
  2. Importez le PFX dans un nouveau keystore avec le même mot de passe à l'aide de la commande ci-dessous. (Remplacer MY-CERTIFICATE.p12 et MY-KEYSTORE.jks avec le nom réel de votre fichier PFX et le nom de fichier que vous voulez donner à votre keystore. Notez également que le destalias est arbitraire et vous pouvez utiliser une autre valeur d'alias si vous le souhaitez.)
    keytool -importkeystore -srckeystore MY-PFX.p12 -srcstoretype pkcs12 -srcalias 1 -destkeystore MY-KEYSTORE.jks -deststoretype JKS -destalias codesigning
    Remarque: La valeur pour -srcalias pour le fichier PFX téléchargé depuis SSL.com devrait normalement être 1, mais vous pouvez le confirmer en exécutant la commande keytool -list -v -storetype pkcs12 -keystore MY-PFX.P12 et vérifier la valeur indiquée pour Alias name.
  3. Vous serez invité à entrer un mot de passe pour le fichier de clés de destination, puis le mot de passe du fichier de clés source (le mot de passe que vous avez entré lors de la création du PFX). Vous pouvez également voir un message d'avertissement commençant par Warning: The JKS keystore uses a proprietary format. Vous pouvez ignorer ce message en toute sécurité.

Méthode 2: générer une paire de clés et CSR avec Java

Si vous préférez générer votre paire de clés et CSR avec Java, suivez les étapes de cette section. Le processus est le même que celui utilisé pour créer un CSR pour un SSL /TLS certificat en Java.

Créer un magasin de clés et une paire de clés
  1. Tout d'abord, nous allons créer un keystore et une paire de clés publique / privée. Java utilise des fichiers avec l'extension .jks (Java KeyStore) pour stocker les certificats et les clés cryptographiques. Entrez la commande suivante pour générer un fichier de clés et une paire de clés RSA 3072 bits. (Remplacer MY-KEYSTORE.jks avec le nom que vous souhaitez que le fichier ait.)
    keytool -genkeypair -alias codeigning -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
  2. Une série d'invites vous sera présentée. Tout d'abord, créez et vérifiez un mot de passe pour le fichier de clés, puis entrez et vérifiez les informations demandées. (Remplacez les valeurs indiquées en majuscules par vos propres informations.)
    Saisissez le mot de passe du magasin de clés : Saisissez à nouveau le nouveau mot de passe : Quels sont votre prénom et votre nom ? [Inconnu] : PRENOM NOM Quel est le nom de votre organisation ? [Inconnu] : ENTREPRISE Quel est le nom de votre Ville ou Localité ? [Inconnu] : VILLE Quel est le nom de votre État ou de votre province ? [Inconnu] : STATE Quel est le code de pays à deux lettres de cet appareil ? [Inconnu] : États-Unis Est-ce que CN=PRÉNOM NOM, OU=DÉPARTEMENT, O=SOCIÉTÉ, L=VILLE, ST=ÉTAT, C=États-Unis est correct ? [non Oui
  3. Le fichier keystore a été généré et vous êtes prêt à créer un fichier CSR.
Générer CSR
  1. Entrez la commande suivante pour générer un CSR à partir du fichier de clés que nous venons de créer. (Remplacer MY-KEYSTORE.jks avec la valeur que vous avez utilisée lors de la création du fichier de clés et MY-CSR.csr avec le nom que vous souhaitez utiliser pour le CSR.)
    keytool -certreq -alias codeigning -file MY-CSR.csr -keystore MON-KEYSTORE.jks
  2. Entrez le mot de passe que vous avez créé lors de la génération du fichier de clés.
    Entrez le mot de passe du fichier de clés:
  3. La CSR a été créé. Si vous êtes prêt à commander votre certificat auprès de SSL.com, ouvrez le fichier dans un éditeur de texte pour le copier et le coller dans le CSR champ lors de la commande. Le contenu du fichier ressemblera à l'exemple ci-dessous:
    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIC5TCCAc0CAQAwcDELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVNUQVRFMQ0wCwYD
    VQQHEwRDSVRZMRAwDgYDVQQKEwdDT01QQU5ZMRMwEQYDVQQLEwpERVBBUlRNRU5U
    MRswGQYDVQQDExJGSVJTVE5BTUUgTEFTVE5BTUUwggEiMA0GCSqGSIb3DQEBAQUA
    A4IBDwAwggEKAoIBAQCrRyk8VLs1THls+vfz0YtMJ3qYYl4c5c499d1YSbfQHa6L
    kIYhKTxvgdtbD+ePDigKB40CpeuMp5Yu8R6g2YIVBpGMrejAZYAmrzs6tfjpelh0
    ocSDwYr7H8qQ9jq6MfZTu6J7EjS5RMODB6MVq1usKg3H866xbi6lqAtcktEF+zlM
    4FW9Tm3H/DW2G7EnTjlMPzgaXNIU7lLar7YAWPJgv83NV8lQNCDW4lFlZLWBU95r
    YkJ4gfWUFUyPc+AiGbsyDdrVjPvF5yaebnFDrwheFaWeTTigSfLY688G7bpA8VvE
    lKioCl8nlJlc9HOBNKKdhs4qEtF0BwSE8tOgbkWPAgMBAAGgMDAuBgkqhkiG9w0B
    CQ4xITAfMB0GA1UdDgQWBBTmVpJp824krUaJKrQNhsSbVjJA1jANBgkqhkiG9w0B
    AQsFAAOCAQEALlux89RkXyHN4PQqQHbShSeTTWLURII+F+OSK9N1RS5l8V7AMcRM
    wvOkPP7JBRCKiaFGTW+5vcLQNnWRqQZMe0I4E0jzhL2gGsdChPIJy9Jwgn3Rzxmw
    8V0lBY1SHQ9LKgSK0jIer3PQhXHDJlE2g2Dx8nJ4WJk7l2OTF9Kkly9hg8MOQdeg
    VIcs3HLsVI9Cwd6UHRT6ruKL3+bRgEcb6qj+qcrKHkzN7KXbOEznd10nAm87wENS
    mTb012ZFMlpUDvPNAHQgoGJ6slA+pIoH1fvrkosjql7R/H7Q+onm37Qa6d9L2ZqM
    MhgNpNWVwI0UBU4Xy4p9oUCJnvHhQ7U+3w==
    -----END NEW CERTIFICATE REQUEST-----
Commander et récupérer un certificat
  1. Suivez les étapes indiquées dans Commande et récupération de certificats de signature de code à l'étape 24. Plutôt que de cliquer immédiatement sur le Générer un certificat bouton, cochez la case intitulée j'ai le mien CSR.
    j'ai le mien CSR
  2. Coller votre CSR dans le champ du formulaire et cliquez sur le Générer un certificat .
    pâtes CSR et générer un certificat
  3. Cliquez Télécharger et enregistrez le .crt au même endroit où vous avez généré votre keystore.
    Télécharger
Importer un certificat dans Keystore
  1. Utilisez la commande suivante pour importer le certificat dans votre fichier de clés Java. (Remplacez MY-CERTIFICATE.crt et MY-KEYSTORE.jks par les noms de fichiers réels.)
    keytool -importcert -file MY-CERTIFICATE.crt -keystore MY-KEYSTORE.jks -trustcacerts -alias codesigning
  2. Entrez le mot de passe du fichier de clés lorsque vous y êtes invité.
    Entrez le mot de passe du fichier de clés:  
  3. Votre certificat est installé dans le keystore et vous êtes prêt à commencer à signer des fichiers.
    La réponse de certificat a été installée dans le magasin de clés

Signer des fichiers avec Jarsigner

  1. Utilisez la commande suivante pour ajouter une signature numérique horodatée à un .jar fichier. (Remplacer /PATH/TO/MY-KEYSTORE.jks et MY-JAR.jar avec les noms de fichiers que vous utilisez. Si vous avez utilisé un autre alias lors de la configuration de votre keystore, remplacez-le par codesigning dans la commande.)
    jarsigner -tsa http://ts.ssl.com -keystore MY-KEYSTORE.jks MY-JAR.jar conception de code
    Remarque: il est également possible de signer votre .jar directement avec un fichier PFX non converti en ajoutant le -storetype pkcs12 Drapeau au jarsigner commander.

    Remarque: Par défaut, SSL.com prend en charge les horodatages des clés ECDSA.

    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.
  2. Entrez le mot de passe du fichier de clés à l'invite.
    Entrez la phrase de passe pour le fichier de clés: 
  3. Le fichier est maintenant signé. Vous pouvez vérifier la signature avec la commande suivante:
    jarsigner -verify -verbose MON-JAR.jar
  4. Si votre fichier a été signé avec succès, la sortie de la commande doit inclure cette ligne:
    s = la signature a été vérifiée
    

 

Signature de code IV, OV et EV avec YubiKey

SSL.com Signature du code EV Les certificats offrent la signature de code en mode noyau Windows 10 et une amélioration instantanée de la réputation SmartScreen, le tout pour aussi peu que 240.00 $ par année. Ils sont livrés sur sécurisé YubiKey FIPS Jetons USB avec authentification à deux facteurs.

COMMANDER MAINTENANT

configuration

Installez le pilote PKCS # 11 et créez un fichier eToken.cfg

Windows
  1. Installez OpenSC en suivant les instructions dans OpenSC Démarrage rapide de Windows.
  2. Localisez le pilote OpenSC PKCS # 11. L'emplacement d'installation par défaut est C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll.
  3. Créez un fichier de configuration et enregistrez-le dans un emplacement pratique (comme votre répertoire personnel). Le nom de fichier est arbitraire, mais dans ce guide, nous utiliserons yubikey-pkcs11-java.cfg. Le fichier doit contenir les informations suivantes:
    name = OpenSC-PKCS11 description = SunPKCS11 via la bibliothèque OpenSC = C: \ Program Files \ OpenSC Project \ OpenSC \ pkcs11 \ opensc-pkcs11.dll slotListIndex = 0
macOS
  1. Installer OpenSC. Si tu utilises Homebrew en tant que gestionnaire de packages, vous pouvez installer OpenSC avec la commande suivante:
    brew installer opensc
  2. Localisez le pilote OpenSC PKCS # 11. Si vous avez installé avec Homebrew, le fichier devrait être disponible à l'adresse /usr/local/lib/opensc-pkcs11.so.
  3. Créez un fichier de configuration et enregistrez-le dans un emplacement pratique (comme votre répertoire personnel). Le nom de fichier est arbitraire, mais dans ce guide, nous utiliserons yubikey-pkcs11-java.cfg. Le fichier doit contenir les informations suivantes:
    name = OpenSC-PKCS11 description = SunPKCS11 via la bibliothèque OpenSC = /usr/local/lib/opensc-pkcs11.so slotListIndex = 0

Signer des fichiers avec Jarsigner

  1. Utilisez la commande suivante pour ajouter une signature numérique horodatée à un .jar fichier. (Remplacer MY-JAR.jar avec le nom de fichier que vous utilisez.)
    jarsigner -tsa http://ts.ssl.com -providerClass sun.security.pkcs11.SunPKCS11 -providerArg yubikey-pkcs11-java.cfg -keystore AUCUN -storetype PKCS11 MY-JAR.jar "Certificat d'authentification PIV"
  2. Entrez votre code PIN YubiKey à l'invite de la phrase de passe.
    Entrez la phrase de passe pour le fichier de clés: 
  3. Le fichier est maintenant signé. Vous pouvez vérifier la signature avec la commande suivante:
    jarsigner -verify -verbose MON-JAR.jar
  4. Si votre fichier a été signé avec succès, la sortie de la commande doit inclure cette ligne:
    s = la signature a été vérifiée
    
Merci d'avoir choisi SSL.com! Si vous avez des questions, veuillez nous contacter par e-mail à Support@SSL.com, appel 1-877-SSL-SECURE, ou cliquez simplement sur le lien de discussion en bas à droite de cette page. Vous pouvez également trouver des réponses à de nombreuses questions d'assistance courantes dans notre knowledgebase.

 

Twitter
Facebook
LinkedIn
Reddit
Email

Restez informé et en sécurité

SSL.com est un leader mondial de la cybersécurité, PKI et les certificats numériques. Inscrivez-vous pour recevoir les dernières nouvelles de l'industrie, des conseils et des annonces de produits de SSL.com.

Nous aimerions recevoir vos commentaires

Répondez à notre enquête et faites-nous part de votre avis sur votre récent achat.