Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Sécurité et Tomcat Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Un guide pas à pas pour configurer un certificat SSL/TLS dans le serveur Tomcat.

L'une des tâches essentielles pour sécuriser Tomcat est de configurer un certificat SSL, afin que l'application web soit accessible via HTTPS.

Il y a plusieurs façons d'y parvenir.

  • Vous pouvez mettre fin à SSL au niveau d'un équilibreur de charge
  • Implémenter SSL au niveau du CDN
  • Utiliser des serveurs web comme Apache, Nginx, etc. en amont et implémenter SSL à ce niveau

Cependant, si vous n'utilisez pas l'une des méthodes ci-dessus, si vous l'utilisez en tant que serveur frontal ou si vous avez besoin de déployer SSL directement dans Tomcat, alors ce qui convient vous aidera.

Dans cet article, nous allons procéder comme suit.

  • Générer une CSR (demande de signature de certificat)
  • Importer le certificat dans un fichier keystore
  • Activer SSL dans Tomcat
  • Configurer le protocole TLS
  • Modifier Tomcat pour qu'il écoute sur le port 443
  • Testez la vulnérabilité de Tomcat à l'égard du protocole SSL

Commençons...

Préparation du certificat SSL/TLS

La première étape consiste à générer un CSR et à le faire signer par l'autorité de certification. Nous utiliserons l'utilitaire keytool pour gérer les certificats.

  • Connectez-vous au serveur Tomcat
  • Allez dans le chemin d'installation de Tomcat
  • Créez un dossier appelé ssl
  • Exécutez la commande pour créer un keystore
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

Il y a deux variables dans les commandes ci-dessus que vous pouvez modifier.

  1. Alias - il est préférable de le garder significatif pour qu'à l'avenir vous puissiez le reconnaître rapidement. Je préfère le garder comme un nom de domaine.
  2. Nom de fichier - encore une fois, il est préférable de garder le nom de domaine.

Ex :

[root@geekflare ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
Entrez le mot de passe du keystore :
Entrez à nouveau le nouveau mot de passe :
Quels sont vos nom et prénom ?
[Inconnu] : bloggerflare.com
Quel est le nom de votre unité organisationnelle ?
[Inconnu] : Blogging
Quel est le nom de votre organisation ?
[Inconnu] : Geek Flare
Quel est le nom de votre ville ou localité ?
[Inconnu] :
Quel est le nom de votre État ou province ?
[Inconnu] :
Quel est le code pays à deux lettres pour cette unité ?
[Inconnu] :
Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Inconnu, ST=Inconnu, C=Inconnu est-il correct ?
[no]: yes

Entrez le mot de passe clé pour <bloggerflare>
(RETOURnez si le mot de passe est le même que celui du keystore) :

[root@geekflare ssl]#

Faites attention à la question du nom et du prénom. Je pense que cette question est un peu trompeuse. Ce n'est pas votre nom mais le nom de domaine que vous voulez sécuriser.

Une fois que vous avez fourni toutes les informations, un fichier keystore sera créé dans le répertoire de travail actuel.

L'étape suivante consiste à générer une nouvelle CSR avec le keystore nouvellement créé à l'aide de la commande suivante.

keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

Cela créera un CSR que vous devrez envoyer à l'autorité de certification pour le faire signer. Si vous vous amusez, vous pouvez envisager d'utiliser un fournisseur de certificat GRATUIT ou d'opter pour un fournisseur prime.

J'ai fait signer le certificat et je vais procéder à l'importation dans le keystore avec la commande ci-dessous.

  • L'importation du certificat racine est fournie par le fournisseur
keytool -importcert -alias root -file root -keystore bloggerflare.jks
  • Importez le certificat intermédiaire
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

RemarqueSi vous n'importez pas les certificats racine et intermédiaire, vous ne pourrez pas importer le certificat de domaine dans le keystore. Si vous avez plus d'un intermédiaire, vous devez tous les importer.

  • Importer le certificat de domaine
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

et vous obtiendrez une confirmation de son installation.

Le certificat réponse a été installé dans le keystore

Parfait, le keystore du certificat est maintenant prêt. Passons à l'étape suivante.

Si vous êtes novice en matière de SSL et que vous souhaitez en savoir plus, inscrivez-vous à ce cours en ligne - Opérations SSL/TLS.

Activer SSL dans Tomcat

En supposant que vous êtes toujours connecté au serveur Tomcat, allez dans le dossier conf

  • Faites une sauvegarde du fichier server.xml
  • Allez dans la section<Connector port="8080" protocol="HTTP/1.1" et ajoutez une ligne
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
  • N'oubliez pas de remplacer le nom du fichier keystore et le mot de passe par les vôtres
  • Redémarrez Tomcat et vous devriez voir que Tomcat est accessible via HTTPS

tomcat-ssl

Super !

Port HTTPS standard

Pourquoi ?

Si vous regardez la capture d'écran ci-dessus, j'accède à Tomcat via 8080 avec https, ce qui n'est pas standard, et pour d'autres raisons encore.

  • Vous ne voulez pas demander aux utilisateurs d'utiliser un port personnalisé
  • Le navigateur émettra un avertissement car le certificat est émis sur le nom de domaine sans le port

L'idée est donc de faire écouter Tomcat sur le port 443 afin qu'il soit accessible via https:// sans le numéro de port.

Pour ce faire, éditez server.xml avec votre éditeur préféré

  • Allez à <Connector port="8080"
  • Changez le port de 8080 à 443
  • Cela devrait ressembler à ceci
<Connector port="443" protocol="HTTP/1.1"
connectionTimeout="20000"
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
redirectPort="8443" />
  • Redémarrez Tomcat et accédez à votre application en https sans aucun numéro de port

tomcat-over-https

Impressionnant, c'est un succès !

Test de vulnérabilité SSL/TLS

Enfin, nous allons effectuer un test pour nous assurer que l'application n'est pas vulnérable aux menaces en ligne.

Il existe de nombreux outils en ligne dont j'ai parlé ici, et ici j'utiliserai SSL Labs.

tomcat-ssl-labs

Et c'est VERT - note A.

Cependant, c'est toujours une bonne idée de faire défiler le rapport et de voir si vous trouvez une vulnérabilité et de la corriger.

C'est tout pour aujourd'hui.

J'espère que cela vous aidera à connaître la procédure de sécurisation de Tomcat avec un certificat SSL/TLS. Si vous souhaitez en savoir plus, je vous recommande vivement ce cours.

  • Chandan Kumar
    Auteur
    Chandan Kumar est le fondateur de Geekflare. Il a aidé des millions de personnes à exceller dans le domaine numérique. Passionné de technologie, il s'est donné pour mission d'explorer le monde et d'amplifier la croissance des professionnels et des entreprises.
Merci à nos sponsors
Autres lectures sur la sécurité
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus