bg-tutorials

Comment générer un CSR sur Tomcat

Ce tutoriel vous montre comment générer une CSR (Certificate Signing Request) pour Apache Tomcat à l’aide de l’utilitaire Java keytool. Le processus se déroule en deux commandes : d’abord keytool -genkeypair crée un keystore et une clé privée sous un alias choisi, puis keytool -certreq exporte la CSR correspondante. Le même alias est réutilisé plus tard lorsque vous importez le certificat signé, de sorte que la clé, la CSR et le certificat final se trouvent tous au même endroit.

Ce dont vous aurez besoin

  • Une installation Java (JDK ou JRE) pour que la commande keytool soit disponible. Vérifiez avec keytool -help.
  • Un accès shell ou terminal sur le serveur qui hébergera la clé privée. La clé privée doit rester sur ce serveur.
  • Le nom de domaine complet (FQDN) exact que vous souhaitez sécuriser, par exemple www.yourdomain.com, ainsi que tout domaine supplémentaire que vous souhaitez couvrir (pour le champ SAN).
  • Les informations légales de votre organisation (pays, état, localité, nom de l’organisation) pour le nom distinctif (Distinguished Name) de la CSR.

Étape 1 : Créer le keystore et la clé privée

Si vous avez déjà généré votre CSR, passez directement à soumettre la CSR, puis à installer votre certificat SSL sur Tomcat.

Ouvrez un terminal sur le serveur et créez un nouveau keystore au format PKCS12. PKCS12 est le standard moderne et portable, et constitue le format de keystore par défaut dans Java depuis JDK 9 ; l’ancien format JKS est déprécié. Exécutez :

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

Ce que signifient les paramètres :

  • -alias tomcat : le nom de l’entrée dans le keystore. Choisissez un libellé que vous reconnaîtrez (souvent tomcat ou votre domaine). Notez-le. Vous devez réutiliser cet alias exact lorsque vous générez la CSR, puis à nouveau lorsque vous importez le certificat signé.
  • -keyalg RSA -keysize 2048 : une clé RSA de 2048 bits est le minimum public actuel. Pour les nouveaux keystores, 3072 bits est une amélioration raisonnable pour des clés à durée de vie plus longue. La plupart des CA publiques acceptent également ECDSA (-keyalg EC -groupname secp256r1) si vous préférez une clé plus petite et plus rapide.
  • -storetype PKCS12 : impose le format moderne de keystore PKCS12. L’extension correspondante est .p12 (ou .pfx).
  • -keystore yourdomain.p12 : le fichier keystore à créer. Remplacez le nom par quelque chose dont vous vous souviendrez, et conservez ce fichier en lieu sûr ; il contient votre clé privée.
  • -validity 825 : la durée de validité du certificat placeholder auto-signé contenu dans le keystore. Le certificat signé par la CA le remplace ensuite, donc la valeur exacte n’affecte pas la durée de vie en production.

keytool demande ensuite un mot de passe de keystore. Choisissez un mot de passe fort et conservez-le dans votre gestionnaire de secrets : vous en aurez besoin pour chaque commande keytool ultérieure et pour le fichier server.xml de Tomcat. Avec les keystores PKCS12, le mot de passe de la clé est identique à celui du keystore, donc il n’y a qu’un seul mot de passe à retenir.

Étape 2 : Saisir les informations de votre organisation (DN)

keytool demande maintenant le nom distinctif (Distinguished Name, DN) : les champs d’identité qui figureront dans la CSR. Répondez à chaque invite avec la valeur exacte et légale de votre organisation. La ponctuation et l’exactitude comptent : une CA rejettera toute incohérence avec les registres publics de l’entreprise.

  • Prénom et nom (CN) : c’est la formulation utilisée par keytool, mais il s’agit en réalité du champ Common Name. Saisissez le FQDN exact que vous sécurisez, par exemple www.yourdomain.com, ou un caractère générique tel que *.yourdomain.com. N’entrez pas le nom d’une personne.
  • Unité organisationnelle (OU) : ce champ n’est plus délivré par les CA publiques et il est préférable de le laisser vide. Appuyez sur Entrée pour passer.
  • Organisation (O) : le nom légal complet de votre entreprise, par exemple Your Company LLC.
  • Ville ou localité (L) : le nom complet de la ville, par exemple San Jose. Ne l’abrégez pas.
  • État ou province (ST) : le nom complet de l’état ou de la province, par exemple California. N’utilisez pas de code à deux lettres.
  • Code pays (C) : le code pays ISO à deux lettres, par exemple US, GB, DE.

Après la dernière invite, keytool affiche un résumé du type CN=www.yourdomain.com, OU=, O=Your Company LLC, L=San Jose, ST=California, C=US. Tapez yes pour confirmer. Le fichier keystore existe désormais avec une entrée : votre alias, contenant la clé privée et un certificat placeholder auto-signé.

Si vous préférez une commande non interactive, transmettez le DN directement en ligne et évitez les invites :

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

Étape 3 : Générer la CSR avec SAN

Les navigateurs et clients modernes valident les certificats par rapport à l’extension Subject Alternative Name (SAN), et non uniquement par rapport au Common Name. Demandez les SAN directement dans la CSR afin que la CA les inclue dans le certificat émis. Utilisez le même alias et le même keystore que ceux de l’étape 1 :

keytool -certreq 
  -alias tomcat 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

Ce que signifient les paramètres :

  • -alias tomcat : doit correspondre à l’alias de l’étape 1. C’est l’alias dont la clé privée signe la demande.
  • -keystore yourdomain.p12 : doit correspondre au keystore de l’étape 1.
  • -file yourdomain.csr : le nom du fichier de sortie pour la CSR.
  • -ext san=dns:… : l’extension Subject Alternative Name. Listez chaque nom d’hôte que le certificat doit couvrir, y compris à la fois le domaine racine (yourdomain.com) et le sous-domaine www. Ajoutez d’autres entrées séparées par des virgules, par exemple dns:api.yourdomain.com.

keytool demande le mot de passe du keystore et écrit la CSR dans yourdomain.csr dans le répertoire courant.

Important : conservez votre alias et votre keystore

L’erreur keytool la plus courante sur Tomcat consiste à importer le certificat signé sous un nouvel alias. Cela stocke le certificat comme une entrée de confiance autonome sans clé privée associée, et TLS ne fonctionnera pas. Importez toujours la réponse signée dans le même alias qui contient la clé privée (l’alias de l’étape 1).

Notez ces trois valeurs maintenant, avant de fermer le terminal :

  • L’alias (dans ce guide, tomcat).
  • Le chemin du fichier keystore (par exemple yourdomain.p12).
  • Le mot de passe du keystore.

Si vous n’êtes pas certain de savoir quel alias contient votre clé, listez le contenu du keystore et recherchez l’entrée dont le type est PrivateKeyEntry :

keytool -list -v -keystore yourdomain.p12

Étape 4 : Vérifier la CSR avant de la soumettre

Repérez les fautes de frappe dans le DN ou les SAN manquants avant que la CA ne les valide. Affichez la CSR avec keytool :

keytool -printcertreq -file yourdomain.csr

Ou, si OpenSSL est installé, vous pouvez l’utiliser à la place :

openssl req -noout -text -in yourdomain.csr

Vérifiez trois éléments dans le résultat : le Subject affiche votre DN exact, le Subject Alternative Name liste chaque nom d’hôte requis, et la taille de la Public-Key correspond à ce que vous avez demandé (RSA 2048 bits, ou tout autre choix effectué). Vous pouvez également coller la CSR dans notre Décodeur de CSR pour effectuer la même vérification dans un navigateur.

Étape 5 : Soumettre la CSR à votre autorité de certification

Ouvrez yourdomain.csr dans n’importe quel éditeur de texte. Le fichier est en texte brut, commençant par —–BEGIN CERTIFICATE REQUEST—– et se terminant par —–END CERTIFICATE REQUEST—–. Copiez l’intégralité du bloc, y compris ces lignes d’en-tête et de pied de page, et collez-le dans le champ CSR lors de la commande auprès de votre CA. Sous Windows, utilisez Ctrl + A puis Ctrl + C pour saisir le texte complet ; sous macOS, utilisez Cmd + A puis Cmd + C.

Une fois que la CA a validé votre demande et émis le certificat, poursuivez avec comment installer votre certificat SSL sur Tomcat. Vous importerez le certificat signé dans le même alias du même keystore, puis vous configurerez le connecteur HTTPS de Tomcat pour qu’il pointe vers ce keystore.

Economisez 10% sur les certificats SSL en commandant aujourd’hui!

Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10

Image détaillée d'un dragon en vol
Rédigé par

Rédacteur de contenu expérimenté spécialisé dans les certificats SSL. Transformer des sujets complexes liés à la cybersécurité en un contenu clair et attrayant. Contribuer à l'amélioration de la sécurité numérique par des récits percutants.