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.
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.
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.
.jar
directement avec un fichier PFX non converti en ajoutant le -storetype pkcs12
Drapeau au jarsigner
commander.- 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.
- 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
etMY-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 ledestalias
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 être1
, mais vous pouvez le confirmer en exécutant la commandekeytool -list -v -storetype pkcs12 -keystore MY-PFX.P12
et vérifier la valeur indiquée pourAlias name
. - 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
- 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. (RemplacerMY-KEYSTORE.jks
avec le nom que vous souhaitez que le fichier ait.)keytool -genkeypair -alias codeigning -keyalg RSA -keysize 3072 -keystore MY-KEYSTORE.jks
- 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
- Le fichier keystore a été généré et vous êtes prêt à créer un fichier CSR.
Générer CSR
- 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 etMY-CSR.csr
avec le nom que vous souhaitez utiliser pour le CSR.)keytool -certreq -alias codeigning -file MY-CSR.csr -keystore MON-KEYSTORE.jks
- 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:
- 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
- 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.
- Coller votre CSR dans le champ du formulaire et cliquez sur le Générer un certificat .
- Cliquez Télécharger et enregistrez le
.crt
au même endroit où vous avez généré votre keystore.
Importer un certificat dans Keystore
- 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
- 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:
- 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
- Utilisez la commande suivante pour ajouter une signature numérique horodatée à un
.jar
fichier. (Remplacer/PATH/TO/MY-KEYSTORE.jks
etMY-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 parcodesigning
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 aujarsigner
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. - Entrez le mot de passe du fichier de clés à l'invite.
Entrez la phrase de passe pour le fichier de clés:
- Le fichier est maintenant signé. Vous pouvez vérifier la signature avec la commande suivante:
jarsigner -verify -verbose MON-JAR.jar
- 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
Configuration
Installez le pilote PKCS # 11 et créez un fichier eToken.cfg
Windows
- Installez OpenSC en suivant les instructions dans OpenSC Démarrage rapide de Windows.
- Localisez le pilote OpenSC PKCS # 11. L'emplacement d'installation par défaut est
C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
. - 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
- Installer OpenSC. Si tu utilises Homebrew en tant que gestionnaire de packages, vous pouvez installer OpenSC avec la commande suivante:
brew installer opensc
- 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
. - 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
- Utilisez la commande suivante pour ajouter une signature numérique horodatée à un
.jar
fichier. (RemplacerMY-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"
- Entrez votre code PIN YubiKey à l'invite de la phrase de passe.
Entrez la phrase de passe pour le fichier de clés:
- Le fichier est maintenant signé. Vous pouvez vérifier la signature avec la commande suivante:
jarsigner -verify -verbose MON-JAR.jar
- 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