Certifier une application Java (JRE) permet d’éviter les messages d’erreur de sécurité et rassure les clients. La procédure est assez simple, il faut acheter un « Code Signing Certificate for Java » chez Symantec / Digitcert, Globalsign, GoDaddy ou autre autorité et utiliser ce certificat pour signer les fichiers jar. Afin de recevoir ou de renouveler un certificat CodeSigning existant, il faut générer un CSR (Certificate Signing Request, une demande de signature de certificat).

L’objectif est d’éviter ce type d’erreur au lancement d’une application Java :

erreur sécurité Java

Ce tutoriel explique comment générer un fichier CSR pour faire une demande de certificat Code Signing Java afin de certifier des fichiers Jar et sécuriser une application basée sur Oracle Java ou OpenJDK.

Prérequis : avoir un JDK installé (Java Development Kit) sur le poste qui exécutera la commande. Celui-ci n’a pas besoin d’être un PC de développeur. Ici, c’est un poste Windows qui est utilisé.

 

Générer un keystore et un CSR (RSC) pour certificat Code Signing Java

1. Ouvrir un Invite de commandes en tant qu’Administrateur pour ne pas avoir de problème d’écriture sur le disque dur.

2. Se placer dans un dossier libre, par exemple cd C:\certificat

3. Exécuter la commande pour créer une clé qui sera générée avec le keystore java.

keytool -genkey -keyalg rsa -keystore <path_and_create_a_KeystoreFilename> -alias <create_Aliasname> -keysize 2048

Soit par exemple, en cherchant l’exécutable keytool dans le dossier d’installation du JDK :

"C:\Program Files\Java\jdk1.8.0_201\bin\keytool.exe" -genkey -keyalg rsa -keystore keystore_csr -alias alias_csr -keysize 2048

4. Indiquer un mot de passe pour sécuriser ce fichier et le confirmer :

Entrez le mot de passe du fichier de clés :
Ressaisissez le nouveau mot de passe :

5. Répondre à toutes les questions posées :

Entrez le mot de passe du fichier de clés :
Ressaisissez le nouveau mot de passe :
Quels sont vos nom et prénom ?
[Unknown]: Jean Dupont
Quel est le nom de votre unité organisationnelle ?
[Unknown]: IT
Quel est le nom de votre entreprise ?
[Unknown]: SOCIETE
Quel est le nom de votre ville de résidence ?
[Unknown]: Paris
Quel est le nom de votre état ou province ?
[Unknown]: IDF
Quel est le code pays à deux lettres pour cette unité ?
[Unknown]: FR
Est-ce CN=Jean Dupont, OU=IT, O=SOCIETE, L=Paris, ST=IDF, C=FR ?
[non]: oui

6. Saisir un mot de passe :

Entrez le mot de passe de la clé pour <alias_csr>
(appuyez sur Entrée s’il s’agit du mot de passe du fichier de clés) :
Ressaisissez le nouveau mot de passe :

7. Toujours dans l’invite de commande, générer le fichier CSR depuis le keystore :

keytool -certreq -keystore <path_and_KeystoreFilename_from_step1> -alias <Aliasname_from_step1> -file <path_and_create_CSRFilename>.csr

Soit par exemple :

"C:\Program Files\Java\jdk1.8.0_201\bin\keytool.exe" -certreq -keystore "C:\certificat\keystore_csr" -alias alias_csr -file "C:\certificat\nouveaucsr.csr"

8. Confirmer le mot de passe.

9. Deux fichiers ont été créés dans le dossier indiqué. Envoyer le .csr à l’autorité de certificat pour créer ou renouveler un certificat de Code Signing Java.