Tutorials  /  Security

Sicherheitskonfiguration für Tomcat mit Secure Socket Layer (SSL)

Ccentron Redaktion · Januar 2024 ·3 Min. Lesezeit ·Security, Tutorial

Einführung

Secure Socket Layer (SSL) ist das Kryptographieprotokoll, um Nachrichtensicherheit über das Internet zu gewährleisten. Es basiert auf dem Prinzip von privaten und öffentlichen Schlüsseln, und Nachrichten werden verschlüsselt, bevor sie über das Netzwerk gesendet werden. Um SSL in Tomcat zu konfigurieren, benötigen wir ein digitales Zertifikat, das mit dem Java-Schlüsselwerkzeug für die Entwicklungsumgebung erstellt werden kann. Für die Produktionsumgebung sollten Sie das digitale Zertifikat von SSL-Zertifikatanbietern beziehen, zum Beispiel von Verisign, Entrust, Lets’ Encrypt.

SEC

Passende Infrastruktur bei centron

Absicherung endet nicht beim Server: Cloud Firewalls filtern den Datenverkehr vor der VM – zentral verwaltet, ohne Aufpreis je Regel. Cloud Firewalls ansehen →

Erstellen eines SSL-Zertifikats

Folgen Sie den untenstehenden Schritten, um Ihr eigenes digitales Zertifikat zu erstellen.

Konsole
$ keytool -genkey -alias tomcat -keyalg RSA -keystore mycertificate.cert
Geben Sie das Keystore-Passwort ein:
Passwort erneut eingeben:
Wie lautet Ihr Vor- und Nachname?
[Unbekannt]:  Pankaj Kumar
Wie lautet der Name Ihrer Organisationseinheit?
[Unbekannt]:  Dev
Wie lautet der Name Ihrer Organisation?
[Unbekannt]:  JournalDev
Wie lautet der Name Ihrer Stadt oder Ortschaft?
[Unbekannt]:  Bangalore
Wie lautet der Name Ihres Bundesstaates oder Ihrer Provinz?
[Unbekannt]:  Karnataka
Wie lautet der zweistellige Ländercode für diese Einheit?
[Unbekannt]:  IN
Ist CN=Pankaj Kumar, OU=Dev, O=JournalDev, L=Bangalore, ST=Karnataka, C=IN korrekt?
[nein]:  Ja
Geben Sie das Schlüsselpasswort für
(RETURN, wenn dasselbe wie das Keystore-Passwort):
Passwort erneut eingeben:
$ ls
mycertificate.cert

Ich habe für das Keystore und den Schlüssel das Passwort „changeit“ verwendet, aber Sie können jedes beliebige Passwort verwenden. Jetzt ist unser digitales Zertifikat fertig, und der nächste Schritt ist, den HTTPS-Kommunikationsport in Tomcat zu aktivieren und so einzustellen, dass er unser digitales Zertifikat für die SSL-Unterstützung verwendet.

Tomcat HTTPS-Konfiguration

Um SSL zu aktivieren, öffnen Sie die Datei Tomcat_Installation/conf/server.xml und kommentieren Sie die folgende Zeile ein:

Code
<Connector port="8443" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" scheme="https" secure="true"
           keystoreFile="/Users/Pankaj/tomcat/conf/mycertificate.cert"
           clientAuth="false" sslProtocol="TLS" />

Um eine Fehlplatzierung des Zertifikats zu vermeiden, habe ich es im Tomcat-Konfigurationsverzeichnis abgelegt. Starten Sie nun Tomcat neu und versuchen Sie, auf eine Webanwendung über HTTPS mit Port 8443 zuzugreifen.

Tomcat HTTP auf HTTPS umleiten

So können wir auf jede Webanwendung über die HTTP- und HTTPS-Ports zugreifen. Wir können Tomcat so einrichten, dass alle HTTP-Anfragen an den HTTPS-Port umgeleitet werden, indem wir einige Konfigurationen vornehmen.

In TomcatInstallation/conf/server.xml setzen Sie für den HTTP-Connector den Umleitungsport auf den HTTPS-Connector-Port. Das sieht dann ungefähr so aus:

Code
<!-- Definieren Sie einen nicht-SSL HTTP/1.1 Connector auf Port 8080 -->
<Connector port="8090" maxHttpHeaderSize="8192"
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" redirectPort="8443" acceptCount="100"
           connectionTimeout="20000" disableUploadTimeout="true" />

In TomcatInstallation/conf/web.xml, fügen Sie die folgende Konfiguration hinzu, aber achten Sie darauf, sie nach allen servlet-mapping-Tags hinzuzufügen:

Code
<!-- hinzugefügt von Pankaj für automatische Weiterleitung von HTTP zu HTTPS -->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Gesamte Anwendung</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>VERTRAULICH</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Starten Sie Tomcat jetzt neu, und alle HTTP-Anfragen werden automatisch auf HTTPS umgeleitet, d.h., https://localhost:8080/axis2 wird automatisch auf https://localhost:8443/axis2 umgeleitet.

Hinweis: Wenn Sie keine Ports in den URLs angeben möchten, dann verwenden Sie 80 für HTTP und 443 für HTTPS. In diesem Fall können Sie den ersten Schritt zur automatischen Weiterleitung von HTTP-Anfragen auf HTTPS überspringen, da automatisch der Standardport 443 ausgewählt wird. Das war's! Ich hoffe, dieser Leitfaden zur Sicherheitskonfiguration für Tomcat mit Secure Socket Layer (SSL) war hilfreich für Sie.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Security
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren