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.
- 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.
- 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
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
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
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.