Guide étape par étape pour activer HTTPS ou SSL de manière correcte sur le serveur Apache Tomcat - Port 8443
Publié: 2021-04-03Cela fait presque 12 ans que j'ai commencé à utiliser Apache Tomcat. Je crois que lorsque j'ai fait mon premier projet de premier cycle, c'était sur Tomcat version 1.x
. Maintenant, c'est déjà sur la version 8.0
. La plupart du temps, j'ai été en contact avec Tomcat Server dans ma vie professionnelle quotidienne, je ne peux tout simplement pas m'en passer.
Sur Crunchify nous avons déjà publié près de 40 articles sur Apache Tomcat
. Dans la plupart des tutoriels, j'ai exécuté le serveur sur le port 8080 qui est le port par défaut configuré dans le fichier server.xml
.
Dans ce didacticiel, nous passerons en revue toutes les étapes en détail sur how to enable HTTPS/SSL on Apache Tomcat Server
.
Commençons:
Étape 1. Créer un magasin de clés
keytool
: nous allons générer une clé sécurisée à l'aide de la commande keytool
- qui est un outil de gestion des clés et des certificats.
Commander:
1 2 3 4 |
bash - 3.2 $ pwd / Users / Shared bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore |
Le fichier sera créé dans le dossier /Users/Shared
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore Enter keystore password : Re - enter new password : What is your first and last name ? [ Unknown ] : App Shah What is the name of your organizational unit ? [ Unknown ] : Crunchify , LLC What is the name of your organization ? [ Unknown ] : Crunchify What is the name of your City or Locality ? [ Unknown ] : New York City What is the name of your State or Province ? [ Unknown ] : NY What is the two - letter country code for this unit ? [ Unknown ] : US Is CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US correct ? [ no ] : yes Generating 2 , 048 bit RSA key pair and self - signed certificate ( SHA256withRSA ) with a validity of 90 days for : CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US |
J'utilise Mac OS X, alors remplacez votre chemin en conséquence si vous êtes sous Windows. J'ai utilisé le mot de passe 123456
.
Étape 2. Créer une demande de signature de certificat auto-signé
1 2 |
bash - 3.2 $ keytool - certreq - keyalg RSA - alias crunchify - file crunchify . csr - keystore crunchify . keystore Enter keystore password : |
Entrez le mot de passe : 123456
Étape 3. Vérifions d'abord que tomcat s'exécute sur le port 8080 via HTTP.
Start
le serveur Tomcat à l'aide de la commande : <tomcat_home>/bin/ startup.sh
.
Assurez-vous que vous êtes au bon emplacement du chemin tomcat.
1 2 3 4 5 6 7 8 9 10 11 |
bash - 3.2 # pwd / Users / Shared / apache - tomcat - 9.0.30 / bin bash - 3.2 $ . / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
Cliquez sur URL : http://localhost:8080
pour vous assurer que le serveur est opérationnel.
Étape 4. Vérifiez maintenant l'instance de Tomcat sur le port 8443 via HTTPS.
- Vérifiez maintenant le port 8443 (URL HTTPS/SSL).
- Cliquez sur l'URL :
https://localhost:8443
- Vous devriez voir un message d'erreur. La page ne devrait pas se charger du tout.
Étape-5. Mettre à jour le fichier /conf/server.xml
Comme nous avons généré une demande de keystore et de signature de certificat ci-dessus, nous devons indiquer à tomcat de l'utiliser.

- Ouvrez le fichier
server.xml
qui se trouve dans le<tomcat_home>/conf/
et modifiez les paramètres. - Dans notre cas, il s'agit du dossier
/Users/Shared/apache-tomcat-9.0.30/conf
.
Ajoutez la section ci-dessous directement au fichier server.xml :
1 2 3 4 5 |
< Connector port = "8443" protocol = "HTTP/1.1" SSLEnabled = "true" maxThreads = "150" scheme = "https" secure = "true" keystoreFile = "/Users/Shared/crunchify.keystore" keystorePass = "123456" clientAuth = "false" sslProtocol = "TLS" sslVerifyClient = "optional" sslEnabledProtocols = "TLSv1.2,TLSv1.1,SSLv2Hello" / > |
- Ici, le mot de passe est
123456
que j'ai utilisé àStep-1
. - Protocole : HTTP/1.1
Enregistrer le fichier. Ensuite, nous allons arrêter et démarrer Tomcat Server.
Étape-6. Arrêtez et démarrez Apache Tomcat.
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/shutdown.sh
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/startup.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / shutdown . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar NOTE : Picked up JDK_JAVA_OPTIONS : -- add - opens = java . base / java . lang = ALL - UNNAMED -- add - opens = java . base / java . io = ALL - UNNAMED -- add - opens = java . rmi / sun . rmi . transport = ALL - UNNAMED bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
Étape-7. Vérifiez l'URL et la certification HTTPS : https://localhost:8443
Maintenant, appuyez à nouveau sur l'URL sécurisée HTTPS pour vérifier que votre page a été chargée avec succès.
Chrome:
- Par défaut,
Chrome Blocks all insecure HTTPS
. - Activer l'
Chrome flag
pour charger des certificats non valides pour les ressources chargées à partir de localhost
- Allez sur Chrome
- Ouvrir l'onglet
- tapez :
chrome://flags/#allow-insecure-localhost
- Activer le drapeau à partir du menu déroulant
- Relancez Chrome
Safari et Mozilla Firefox :
-
Accept invalid certificate error
et visitez le site.
Vous devriez voir la page Apache Tomcat se charger via HTTPS sur le port 8443
Vous êtes prêt. Avez-vous remarqué red padlock
? Ne t'inquiète pas. Nous n'avons pas acheté de certificat SSL auprès de Verisign ou de Comodo.
Dans un environnement de production, vous ne verrez peut-être pas ce signe de croix rouge.
Cliquez sur le certificat dans le navigateur et notre certificat auto-signé par défaut devrait être
valid for 90
jours.
Point bonus :
Comment vérifier le cert content
aide de la commande keytool
?
1 |
bash - 3.2 # keytool -list -keystore /Users/<username>/crunchify.keystore |
Résultat:
1 2 3 4 5 6 7 8 9 10 11 12 |
bash - 3.2 $ keytool - list - keystore / Users / Shared / crunchify . keystore Enter keystore password : Keystore type : PKCS12 Keystore provider : SUN Your keystore contains 1 entry crunchify , Apr 24 , 2020 , PrivateKeyEntry , Certificate fingerprint ( SHA - 256 ) : 9D : 26 : 77 : E0 : E8 : 79 : 5B : 46 : 57 : 64 : 04 : 95 : B8 : 22 : 9C : E2 : 9F : A4 : 82 : CB : 01 : B5 : 80 : 62 : 75 : 90 : 48 : 27 : 5F : 60 : CB : C8 bash - 3.2 $ |