Comment signer un fichier jar à l'aide d'un certificat .spc ?
Bonjour.
J'ai créé 2 fichiers (un .key et un .csr), mais je n'ai pas créé de keystore. Voici la commande que j'ai utilisée pour cela:
Code:
openssl req -new -newkey rsa:2048 -nodes -keyout my_key.key -out my_csr.csr
J'ai utilisé le contenu du fichier csr pour créer un certificat .spc (certificat de signature de code) chez godaddy.
Ma question est la suivante: Comment faire pour signer un fichier .jar en utilisant ce certificat ? Puis-je utiliser directemment une quelconque commande ou dois-je convertir ce certificat au format pfx ?
Si je dois le convertir, quelle est la bonne commande et les bons paramètres qui vont avec cette commande pour réussir cette conversion sans génération d'erreur.
En vous remerciant d'avance.
Re: Comment signer un fichier jar à l'aide d'un certificat .spc ?
J'ai finalement créé un keystore, regénéré un csr et mis à jour le certificat avec ce csr, puis j'ai signé mon jar avec le keystore.
Les commandes utilisées sont un peu différentes que celles trouvées sur le net. J'ai supprimé certaines options. Les voici-ci. Peut-être cela peut servir à quelqu'un:
2. Demander une certification
a. Créez un nouveau keystore.
Code:
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore keystore.jks
b. Générer le csr:
Code:
keytool -certreq -alias server -file csr.csr -keystore keystore.jks
c. Mettre à jour le certificat sur le site du fournisseur de votre certificat.
d. Télécharger le nouveau certificat (.spc).
3. Installer le certif de signature de code dans le keystore :
Code:
keytool keytool -import -trustcacerts -keystore keystore.jks -alias server -file nom_de_mon_certificat.spc
4. Signez le fichier JAR à l'aide de jarsigner et en utilisant le certificat de signature de code et la clé privée
Code:
jarsigner -verbose -keystore keystore.jks -tsa http://tsa.starfieldtech.com/ /chemin/vers/le.jar server
5. Vérifiez le fichier JAR signé :
Code:
jarsigner -verify -verbose -certs /chemin/vers/le.jar
Si vous avez l'erreur suivante lors de la vérification:
Code:
jarsigner: java.lang.SecurityException: invalid SHA-256 signature file digest for /chemin/vers/des/.class
Alors désigner (enlever la signature) le jar original puis le résigner.
Pour désigner un .jar:
- il faut l'extraire avec 7zip ou autre,
- supprimer les fichiers avec extension *.SF, *.DSA, *.RSA,
- Puis a laide de la commande ci dessous, on recrée le .jar
Code:
jar cf nom_du_fichier.jar Les_Modules_quil_contient/ META-INF/ org/
Merci.