Schritt-für-Schritt-Anleitung zum korrekten Aktivieren von HTTPS oder SSL auf Apache Tomcat Server – Port 8443
Veröffentlicht: 2021-04-03Es ist fast 12 Jahre her, dass ich angefangen habe, Apache Tomcat zu verwenden. Ich glaube, als ich mein erstes Unterstufenprojekt gemacht habe, war es auf Tomcat Version 1.x
Jetzt ist es bereits auf Version 8.0
. Meistens bin ich in meinem Arbeitsalltag mit Tomcat Server in Berührung gekommen, kann einfach nicht mehr darauf verzichten.
Auf Crunchify haben wir bereits fast 40 Artikel zu Apache Tomcat
veröffentlicht. In den meisten Tutorials habe ich den Server auf Port 8080 ausgeführt, der der Standardport ist, der in der Datei server.xml
konfiguriert ist.
In diesem Tutorial werden wir alle Schritte im Detail durchgehen how to enable HTTPS/SSL on Apache Tomcat Server
.
Lass uns anfangen:
Schritt 1. Schlüsselspeicher erstellen
keytool
: Wir generieren einen sicheren Schlüssel mit dem Befehl keytool
– einem Tool zur Verwaltung von Schlüsseln und Zertifikaten.
Befehl:
1 2 3 4 |
bash - 3.2 $ pwd / Users / Shared bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore |
Die Datei wird im Ordner /Users/Shared
erstellt.
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 |
Ich verwende Mac OS X, ersetzen Sie also Ihren Pfad entsprechend, wenn Sie Windows verwenden. Ich habe das Passwort 123456
verwendet.
Schritt 2. Erstellen Sie eine Anforderung zum Signieren eines selbstsignierten Zertifikats
1 2 |
bash - 3.2 $ keytool - certreq - keyalg RSA - alias crunchify - file crunchify . csr - keystore crunchify . keystore Enter keystore password : |
Passwort eingeben: 123456
Schritt 3. Lassen Sie uns zunächst überprüfen, ob Tomcat auf Port 8080 über HTTP ausgeführt wird.
Start
den Tomcat-Server mit dem Befehl: <tomcat_home>/bin/ startup.sh
.
Stellen Sie sicher, dass Sie sich im richtigen Tomcat-Pfad befinden.
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 . |
Klicken Sie auf URL: http://localhost:8080
, um sicherzustellen, dass der Server betriebsbereit ist.
Schritt 4. Überprüfen Sie nun die Tomcat-Instanz auf Port 8443 über HTTPS.
- Überprüfen Sie nun Port 8443 (HTTPS/SSL-URL).
- Treffer-URL:
https://localhost:8443
- Sie sollten eine Fehlermeldung sehen. Die Seite sollte überhaupt nicht geladen werden.
Schritt-5. Aktualisieren Sie die Datei /conf/server.xml
Da wir oben eine Schlüsselspeicher- und Zertifikatssignierungsanforderung generiert haben, müssen wir Tomcat anweisen, diese zu verwenden.

- Öffnen Sie die Datei
server.xml
, die sich im Ordner<tomcat_home>/conf/
, und ändern Sie die Einstellungen. - In unserem Fall ist es der Ordner
/Users/Shared/apache-tomcat-9.0.30/conf
.
Fügen Sie den folgenden Abschnitt direkt zur Datei server.xml hinzu:
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" / > |
- Hier ist das Passwort
123456
, das ich inStep-1
verwendet habe. - Protokoll: HTTP/1.1
Datei speichern. Als nächstes stoppen und starten wir Tomcat Server.
Schritt-6. Beenden und starten Sie 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 . |
Schritt-7. Überprüfen Sie die HTTPS-URL und -Zertifizierung: https://localhost:8443
Klicken Sie jetzt erneut auf die sichere HTTPS-URL, um zu überprüfen, ob Ihre Seite erfolgreich geladen wurde.
Chrom:
- Standardmäßig
Chrome Blocks all insecure HTTPS
-Sites. - Aktivieren Sie das
Chrome flag
, um ungültige Zertifikate für Ressourcen zu laden, die von localhost geladen wurden
- Gehen Sie zu Chrome
- Registerkarte öffnen
- Typ:
chrome://flags/#allow-insecure-localhost
- Aktivieren Sie das Flag aus der Dropdown-Liste
- Starten Sie Chrome neu
Safari und Mozilla Firefox:
-
Accept invalid certificate error
und besuchen Sie die Website.
Sie sollten sehen, dass die Apache Tomcat-Seite über HTTPS auf Port 8443 geladen wird
Sie sind bereit. Haben Sie das red padlock
bemerkt? Mach dir keine Sorge. Wir haben kein SSL-Zertifikat von Verisign oder Comodo gekauft.
In der Produktionsumgebung sehen Sie dieses rote Kreuzzeichen möglicherweise nicht.
Klicken Sie im Browser auf Zertifikat und unser selbstsigniertes Standardzertifikat sollte
valid for 90
sein.
Bonuspunkt:
So überprüfen Sie Ihren cert content
mit dem Befehl keytool
?
1 |
bash - 3.2 # keytool -list -keystore /Users/<username>/crunchify.keystore |
Ergebnis:
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 $ |