English English French French Spanish Spanish German German
Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Comment implémenter SSL dans Apache Tomcat?

Sans titre-1200-×-385-px-11
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Un guide étape par étape pour configurer le certificat SSL / TLS sur le serveur Tomcat.

L'une des tâches essentielles pour sécuriser Tomcat consiste à configurer le certificat SSL, l'application Web est donc accessible via HTTPS.

Il existe de nombreuses façons d'y parvenir.

  • Vous pouvez mettre fin à SSL sur un équilibreur de charge
  • Implémenter SSL au niveau CDN
  • Utilisez des serveurs Web comme Apache, Nginx, etc. à l'avant et implémentez SSL là-bas

Cependant, si vous n'utilisez aucun des éléments ci-dessus ou que vous l'utilisez comme frontal ou que vous devez déployer SSL directement dans Tomcat, les éléments suivants vous aideront.

Dans cet article, nous ferons comme ci-dessous.

  • Générer un CSR (demande de signature de certificat)
  • Importer le certificat dans un fichier keystore
  • Activer SSL dans Tomcat
  • Configurer le protocole TLS
  • Changer Tomcat pour écouter sur le port 443
  • Tester la vulnérabilité SSL de Tomcat

Commençons…

Preparing for SSL/TLS Certificate

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

  • Connectez-vous au serveur Tomcat
  • Accédez au chemin d'installation de tomcat
  • Créez 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 changer.

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

Ex:

[root@geekflare 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):

[root@geekflare ssl]#

Faire attention à la question sur le prénom et le nom. 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 keystore sur un répertoire de travail actuel.

Le suivant 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 premium.

J'ai fait signer le certificat et je passerai à importer dans le keystore 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

Notes: sans importer la racine et l'intermédiaire, vous ne pourrez pas importer de 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.

La réponse de certificat a été installée dans le magasin de clés

Great, donc le keystore de certificat est maintenant prêt. Passons à l'étape suivante.

Si vous êtes nouveau sur SSL et souhaitez en savoir plus, inscrivez-vous à ce cours en ligne - Opérations SSL / TLS.

Enable SSL in Tomcat

En supposant que vous êtes toujours connecté au serveur Tomcat, accédez au dossier conf

  • Faites une sauvegarde du fichier server.xml
  • Cliquez sur <Connector port="8080" protocol="HTTP/1.1" section et ajoutez une ligne
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

tomcat-ssl

Doux!

Standard HTTPS Port

Pourquoi ?

Eh bien, si vous regardez la capture d'écran ci-dessus, j'accède à Tomcat sur 8080 avec https, ce qui n'est pas standard et quelques autres raisons.

  • Vous ne souhaitez 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 écouter à Tomcat sur le port 443 pour qu'il soit accessible juste sur https: // sans le numéro de port.

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

  • Cliquez sur <Connector port="8080"
  • Changer le port de 8080 à 443
  • ça devrait ressembler à ça
<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 avec https sans numéro de port

tomcat-sur-https

Impressionnant, c'est une réussite!

SSL/TLS Vulnerability Test

Enfin, nous effectuerons un test pour nous assurer que ce n'est pas vulnérable aux menaces en ligne.

Il existe de nombreux outils en ligne que je discuté ici, et ici j'utiliserai SSL Labs.

  • Cliquez sur SSL Labs et entrez l'URL pour commencer le test

tomcat-ssl-labs

Et son VERT - Une cote.

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 le recommande vivement cours.

Merci à nos commanditaires
Plus de bonnes lectures sur la sécurité
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise 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, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder