Dans ce tutoriel, vous apprendrez comment installer un certificat SSL sur Apache Tomcat à l’aide de l’utilitaire Java keytool, puis à configurer le connecteur HTTPS dans server.xml. Si vous n’avez pas encore généré votre CSR, la première section vous montre comment faire.
Nous avons également enregistré une vidéo qui vous guide à travers l’ensemble du processus. Vous pouvez regarder la vidéo, lire les instructions, ou faire les deux. Vous pouvez visionner la vidéo ci-dessous.
Générer un code CSR pour Tomcat
CSR signifie Certificate Signing Request (demande de signature de certificat), un bloc de texte contenant les informations actuelles sur votre domaine et votre organisation. Tout acheteur d’un certificat SSL commercial doit soumettre un CSR à l’autorité de certification (le fournisseur SSL) pour passer la validation et recevoir le certificat. Si le CSR contient des informations incorrectes, l’AC ne le signera pas.
Sur Tomcat, le CSR est créé avec keytool à partir d’un keystore Java, et ce même keystore contient la clé privée que vous réutiliserez lors de l’installation. Vous avez deux options :
- Utilisez notre générateur de CSR pour créer le CSR automatiquement.
- Suivez notre tutoriel étape par étape sur comment générer un CSR sur Tomcat.
Important : gardez une trace du fichier keystore et de l’alias que vous avez utilisés lors de la génération du CSR. Vous importerez votre certificat signé dans ce même alias plus tard, car c’est là que se trouve la clé privée correspondante.
Une fois que l’autorité de certification a validé votre demande et vous a envoyé les fichiers SSL, poursuivez avec l’installation ci-dessous.
Installer un certificat SSL sur Tomcat
Une installation sur Tomcat comporte deux étapes : vous importez d’abord la chaîne de certificats et votre certificat signé dans le keystore qui contient déjà votre clé privée, puis vous configurez le connecteur HTTPS dans server.xml pour utiliser ce keystore.
Étape 1 : Préparez vos fichiers de certificat SSL
Votre autorité de certification vous envoie les fichiers par e-mail à l’adresse que vous avez fournie, généralement sous forme d’archive ZIP. Extrayez-la. Selon l’AC, les fichiers arrivent dans l’un des deux formats suivants :
- PKCS#7 : un seul fichier .p7b (ou .cer) qui regroupe déjà votre certificat avec les certificats racine et intermédiaire.
- PEM : des fichiers séparés, généralement un .crt pour votre certificat de serveur ainsi que des fichiers root.crt et intermediate.crt individuels.
Téléversez les fichiers extraits sur le serveur, dans le même répertoire que le keystore à partir duquel vous avez généré votre CSR (désigné ci-dessous par example.jks). Identifiez votre format et suivez les instructions correspondantes.
Vous avez généré le CSR ailleurs, ce qui fait que votre clé privée est un fichier séparé plutôt qu’une entrée dans example.jks ? Passez outre keytool : convertissez le PEM en PKCS#12 pour regrouper le certificat, la chaîne et la clé dans un seul fichier .p12, puis référencez ce fichier à l’étape 3 avec certificateKeystoreType= »PKCS12″.
Étape 2 : Importez le certificat dans votre keystore
Format PKCS#7. Comme un fichier .p7b contient déjà la chaîne complète, une seule commande permet de tout importer en une fois, dans votre alias de clé privée existant :
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.p7b
Remplacez ssldragon par votre propre alias et example par les noms de vos fichiers. L’alias doit être celui qui contient déjà votre clé privée (l’alias utilisé lors de l’étape du CSR). Lorsque vous voyez le message Certificate reply was installed in keystore, l’importation a réussi. Vérifiez le contenu du keystore avec :
keytool -list -v -keystore example.jks
Recherchez une entrée dont le type est PrivateKeyEntry avec une longueur de chaîne de certificats supérieure à 1. Cela confirme que le certificat signé est désormais associé à votre clé privée.
Format PEM. Importez les certificats séparément, dans l’ordre de la chaîne : d’abord la racine, puis les intermédiaires éventuels, et enfin votre certificat de domaine. Importer la chaîne en premier permet à keytool de construire un chemin de confiance complet avant d’associer la réponse à votre clé. Importez le certificat racine :
keytool -import -trustcacerts -alias root -keystore example.jks -file root.crt
Importez ensuite le certificat intermédiaire :
keytool -import -trustcacerts -alias intermediate -keystore example.jks -file intermediate.crt
Si votre AC fournit plusieurs certificats intermédiaires, importez chacun sous son propre alias de confiance, en suivant l’ordre dans lequel ils se signent mutuellement (de la racine vers votre certificat de domaine). Par exemple, un certificat Sectigo PositiveSSL est livré avec plus d’un intermédiaire, il faut donc les importer dans l’ordre avant le certificat de domaine.
Enfin, importez votre certificat principal (celui délivré pour votre domaine) dans l’alias de clé privée existant, le même alias que celui utilisé lors de la génération du CSR :
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.crt
Ici, ssldragon doit être votre alias de clé privée existant. Comme cet alias possède déjà une clé, keytool traite cette importation comme une réponse de certificat et lie le certificat signé à la clé. C’est cette étape qui fait fonctionner HTTPS.
Piège critique : n’importez pas le certificat signé sous un tout nouvel alias. Si l’alias ne possède aucune clé privée existante, keytool stocke le certificat comme une entrée de confiance autonome sans clé associée, et TLS échouera. Si vous n’êtes pas sûr de l’alias qui contient votre clé, exécutez keytool -list -v -keystore example.jks et utilisez l’alias dont le type est PrivateKeyEntry.
Étape 3 : Configurez le connecteur HTTPS dans server.xml
Une fois le certificat dans votre keystore, faites pointer le connecteur HTTPS de Tomcat vers celui-ci. Le connecteur est défini dans server.xml, situé dans le dossier conf de votre installation Tomcat (par exemple $CATALINA_HOME/conf/server.xml). Ouvrez le fichier dans un éditeur de texte.
Sur les versions actuelles de Tomcat (9, 10 et 11), la forme recommandée intègre un élément SSLHostConfig, qui contient à son tour un élément Certificate référençant votre keystore. Ajoutez ou mettez à jour le connecteur sécurisé pour qu’il ressemble à ceci :
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/your_path/example.jks"
certificateKeystorePassword="your_keystore_password"
certificateKeystoreType="JKS"
certificateKeyAlias="ssldragon"
type="RSA" />
</SSLHostConfig>
</Connector>
- certificateKeystoreFile : le chemin complet vers votre fichier keystore.
- certificateKeystorePassword : le mot de passe du keystore.
- certificateKeystoreType : JKS pour un keystore .jks, ou PKCS12 pour un keystore .p12 / .pfx.
- certificateKeyAlias : l’alias qui contient votre clé privée et votre certificat signé (ici, ssldragon). Cela indique à Tomcat quelle entrée servir lorsque le keystore en contient plusieurs.
Remarque : le port 443 est le port HTTPS standard utilisé ci-dessus ; les exemples propres à Tomcat utilisent par défaut le port 8443, utilisez donc celui qui correspond à votre environnement. S’il s’agit de votre première configuration HTTPS, le connecteur sécurisé peut être commenté dans server.xml. Supprimez les marqueurs de commentaire autour de celui-ci pour l’activer, et assurez-vous qu’aucun autre connecteur n’est déjà lié au même port.
Forme héritée (anciennes versions de Tomcat). Les anciens guides placent les informations du keystore directement sur le connecteur sous forme d’attributs keystoreFile et keystorePass. Ce style est remplacé par les éléments SSLHostConfig et Certificate présentés ci-dessus, qui constituent la forme à utiliser sur les versions de Tomcat prises en charge.
Étape 4 : Enregistrez server.xml et redémarrez Tomcat
Enregistrez server.xml, puis redémarrez Tomcat afin qu’il recharge la configuration. Sous Linux, utilisez les scripts fournis :
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
Si Tomcat fonctionne en tant que service, redémarrez-le plutôt via votre gestionnaire de services (par exemple systemctl restart tomcat sous Linux, ou le panneau des services sous Windows). Félicitations, votre certificat SSL est maintenant installé sur votre serveur Tomcat.
Testez votre installation SSL Tomcat
Après l’installation du certificat, de petites erreurs peuvent passer inaperçues et affecter la façon dont les navigateurs traitent votre site. Prenez l’habitude de vérifier l’installation. Exécutez notre SSL Checker pour une analyse instantanée qui révèle des problèmes tels qu’un certificat intermédiaire manquant ou une chaîne non fiable.
Questions fréquemment posées
La cause habituelle est d’avoir importé le certificat signé sous un nouvel alias au lieu de l’alias qui contient déjà votre clé privée. keytool le stocke alors comme une entrée de certificat de confiance sans clé, si bien que Tomcat ne peut pas terminer une négociation TLS. Réimportez la réponse signée dans l’alias de clé privée existant (celui de votre CSR). Vérifiez que cela a fonctionné en exécutant keytool -list -v -keystore example.jks et en vérifiant que l’alias apparaît comme un PrivateKeyEntry avec une chaîne de plus d’un certificat.
Importez d’abord la chaîne. Ajoutez la racine et les certificats intermédiaires éventuels comme entrées de confiance, dans l’ordre, puis importez votre certificat de domaine dans l’alias de clé privée en dernier. Cela permet à keytool de construire un chemin de confiance complet avant d’associer la réponse à votre clé. Avec un fichier PKCS#7 (.p7b), la chaîne est déjà regroupée, une seule importation suffit donc pour tout gérer.
Le connecteur HTTPS est défini dans server.xml, dans le répertoire conf de votre installation Tomcat (par exemple $CATALINA_HOME/conf/server.xml). Sur les versions actuelles de Tomcat, le keystore est référencé via un élément imbriqué SSLHostConfig et Certificate plutôt que directement sur le connecteur.
Oui. Tomcat prend en charge les deux. Réglez certificateKeystoreType sur PKCS12 pour un keystore .p12 ou .pfx, ou sur JKS pour un keystore .jks, et faites pointer certificateKeystoreFile vers le fichier correspondant. PKCS12 est le format de keystore standard et portable, c’est donc un bon choix par défaut pour les nouveaux keystores.
La configuration d’exemple de Tomcat utilise le port 8443 pour le connecteur sécurisé. Pour servir le HTTPS sur le port standard utilisé par défaut par les navigateurs, réglez le port du connecteur sur 443 et assurez-vous qu’aucun autre connecteur ou service ne l’utilise déjà.
Exécutez les scripts fournis $CATALINA_HOME/bin/shutdown.sh suivi de $CATALINA_HOME/bin/startup.sh, ou redémarrez le service Tomcat via votre gestionnaire de services (par exemple systemctl restart tomcat sous Linux, ou le panneau des services sous Windows). Un redémarrage est nécessaire pour que les modifications apportées à server.xml prennent effet.
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


