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.
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore keystore.jks
b. Générer le csr:
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 :
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
jarsigner -verbose -keystore keystore.jks -tsa http://tsa.starfieldtech.com/ /chemin/vers/le.jar server
5. Vérifiez le fichier JAR signé :
jarsigner -verify -verbose -certs /chemin/vers/le.jar
Si vous avez l'erreur suivante lors de la vérification:
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
jar cf nom_du_fichier.jar Les_Modules_quil_contient/ META-INF/ org/
Merci.
Partager