Un guide étape par étape pour configurer un certificat SSL/TLS sur le serveur Tomcat.
L’une des tâches essentielles pour sécuriser Tomcat consiste à configurer le certificat SSL, afin que l’application Web soit accessible via HTTPS.
Il existe de nombreuses façons d’y parvenir.
- Vous pouvez résilier SSL sur un équilibreur de charge
- Implémenter SSL au niveau du CDN
- Utilisez des serveurs Web comme Apache, Nginx, etc. devant et implémentez SSL là-bas
Cependant, si vous n’utilisez aucun des éléments ci-dessus ou si vous l’utilisez comme frontal ou si vous avez besoin de déployer SSL directement dans Tomcat, les éléments suivants vous aideront.
Dans cet article, nous ferons comme ci-dessous.
- Générer CSR (demande de signature de certificat)
- Importer un certificat dans un fichier keystore
- Activer SSL dans Tomcat
- Configurer le protocole TLS
- Changer Tomcat pour écouter sur le port 443
- Tester Tomcat pour la vulnérabilité SSL
Commençons…
Table des matières
Préparation au certificat SSL/TLS
La première étape serait de générer un CSR et de le faire signer par le autorité de certification. Nous utiliserons l’utilitaire keytool pour gérer les certificats.
- Connectez-vous au serveur Tomcat
- Accédez au chemin d’installation de tomcat
- Créer un dossier appelé ssl
- Exécuter 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 voudrez peut-être modifier.
Ex:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: bloggerflare.com What is the name of your organizational unit? [Unknown]: Blogging What is the name of your organization? [Unknown]: Geek Flare What is the name of your City or Locality? [Unknown]: What is the name of your State or Province? [Unknown]: What is the two-letter country code for this unit? [Unknown]: Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correct? [no]: yes Enter key password for <bloggerflare> (RETURN if same as keystore password): [[email protected] ssl]#
Faites attention à la question du prénom et du nom de famille. C’est un peu trompeur je pense. Ce n’est pas votre nom mais le nom de domaine que vous souhaitez sécuriser.
Une fois que vous avez fourni toutes les informations, il créera un fichier de magasin de clés sur un répertoire de travail actuel.
Ensuite serait de générer un nouveau CSR avec le keystore nouvellement créé avec la commande ci-dessous.
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 jouez, vous pouvez envisager d’utiliser un fournisseur de certificat GRATUIT, sinon optez pour un fournisseur premium.
J’ai obtenu le certificat signé et je vais procéder à l’importation dans le magasin de clés avec la commande ci-dessous.
- Le certificat racine d’importation est fourni par le fournisseur
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Importer un certificat intermédiaire
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Remarque : sans importer la racine et l’intermédiaire, vous ne pourrez pas importer le certificat de domaine dans le magasin de clés. Si vous avez plus d’un intermédiaire, vous devez tous les importer.
- Importer un certificat de domaine
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
et, vous obtiendrez une confirmation qu’il a été installé.
La réponse de certificat a été installée dans le magasin de clés
Génial, donc le magasin de clés de certificat est prêt maintenant. Passons à l’étape suivante.
Si vous êtes nouveau sur 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, accédez au dossier conf
- Effectuez une sauvegarde du fichier server.xml
- Allez à la section
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- N’oubliez pas de changer le nom et le mot de passe du fichier keystore avec le vôtre
- Redémarrez Tomcat et vous devriez voir que Tomcat est accessible via HTTPS
Sucré!
Port HTTPS standard
Pourquoi?
Eh bien, si vous regardez la capture d’écran ci-dessus, j’accède à Tomcat sur 8080 avec https qui n’est pas standard et quelques autres raisons.
- Vous ne voulez pas demander aux utilisateurs d’utiliser un port personnalisé
- Le navigateur donnera un avertissement car le certificat est émis sur le nom de domaine sans le port
L’idée est donc de faire en sorte que Tomcat écoute 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 sur
<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 numéro de port
Impressionnant, c’est une réussite !
Test de vulnérabilité SSL/TLS
Enfin, nous effectuerons un test pour nous assurer qu’il 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.
- Aller à Laboratoires SSL et entrez l’URL pour commencer le test
Et c’est VERT – Une note.
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’était donc 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 le recommande fortement cours.