Eine schrittweise Anleitung zur Einrichtung von SSL/TLS-Zertifikaten im Tomcat-Server.
Eine der wichtigsten Aufgaben zur Absicherung von Tomcat ist die Konfiguration des SSL-Zertifikats, damit die Webanwendung über HTTPS zugänglich ist.
Es gibt viele Möglichkeiten, dies zu erreichen.
- Sie können SSL an einem Load Balancer beenden
- SSL auf CDN-Ebene implementieren
- Verwenden Sie Webserver wie Apache, Nginx usw. im Vorfeld und implementieren Sie dort SSL
Wenn Sie jedoch keine der oben genannten Möglichkeiten nutzen oder dies als Front-End verwenden oder SSL direkt in Tomcat implementieren müssen, hilft Ihnen das Folgende weiter.
In diesem Artikel werden wir wie folgt vorgehen.
- Erzeugen Sie eine CSR (Certificate Signing Request)
- Importieren Sie das Zertifikat in eine Keystore-Datei
- Aktivieren Sie SSL in Tomcat
- TLS-Protokoll konfigurieren
- Ändern Sie Tomcat so, dass er auf Port 443 lauscht
- Tomcat auf SSL-Schwachstellen testen
Lassen Sie uns beginnen…
Vorbereitungen für das SSL/TLS-Zertifikat
Der erste Schritt besteht darin, eine CSR zu erstellen und diese von der Zertifizierungsstelle signieren zu lassen. Wir werden das Dienstprogramm keytool
zur Verwaltung der Zertifikate verwenden.
- Melden Sie sich am Tomcat-Server an
- Gehen Sie zum Tomcat-Installationspfad
- Erstellen Sie einen Ordner namens ssl
- Führen Sie den Befehl zum Erstellen eines Schlüsselspeichers aus
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
In den obigen Befehlen gibt es zwei Variablen, die Sie eventuell ändern möchten.
- Alias – es ist besser, ihn aussagekräftig zu halten, damit Sie ihn in Zukunft schnell erkennen können. Ich ziehe es vor, ihn als Domänennamen beizubehalten.
- Dateiname – auch hier ist es gut, den Domänennamen beizubehalten.
Beispiel:
[root@geekflare ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
Geben Sie das Passwort für den Schlüsselspeicher ein:
Geben Sie das neue Passwort erneut ein:
Wie lautet Ihr Vor- und Nachname?
[Unbekannt]: bloggerflare.com
Wie lautet der Name Ihrer Organisationseinheit?
[Unbekannt]: Blogging
Wie lautet der Name Ihrer Organisation?
[Unbekannt]: Geek Flare
Wie lautet der Name Ihrer Stadt oder Ihres Ortes?
[Unbekannt]:
Wie lautet der Name Ihres Bundeslandes oder Ihrer Provinz?
[Unbekannt]:
Wie lautet der zweibuchstabige Ländercode für diese Einheit?
[Unbekannt]:
Ist CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unbekannt, ST=Unbekannt, C=Unbekannt korrekt?
[Nein]: Ja
Geben Sie das Schlüsselpasswort für <bloggerflare> ein
(RETURN, wenn dasselbe wie das Kennwort für den Schlüsselspeicher):
[root@geekflare ssl]#
Achten Sie auf die Frage nach dem Vor- und Nachnamen. Dies ist meiner Meinung nach ein wenig irreführend. Es ist nicht Ihr Name, sondern der Domänenname, den Sie absichern möchten.
Sobald Sie alle Informationen eingegeben haben, wird eine Keystore-Datei in einem aktuellen Arbeitsverzeichnis erstellt.
Als Nächstes müssen Sie mit dem folgenden Befehl eine neue CSR mit dem neu erstellten Keystore erzeugen.
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Dadurch wird eine CSR erstellt, die Sie an die Zertifizierungsstelle senden müssen, um sie signieren zu lassen. Wenn Sie ein wenig herumspielen, können Sie einen KOSTENLOSEN Zertifikatsanbieter verwenden oder sich für einen Premium-Anbieter entscheiden.
Ich habe das Zertifikat signiert und werde es mit dem folgenden Befehl in den Keystore importieren.
- Importieren Sie das Stammzertifikat, das Sie vom Anbieter erhalten haben
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Zwischenzertifikat importieren
keytool -importcert -alias Zwischenzertifikat -Datei Zwischenzertifikat -Schlüsselspeicher bloggerflare.jks
Hinweis: Ohne den Import von Stammzertifikat und Zwischenzertifikat können Sie das Domainzertifikat nicht in den Keystore importieren. Wenn Sie mehr als ein Zwischenzertifikat haben, müssen Sie alle importieren.
- Domain-Zertifikat importieren
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
und Sie erhalten eine Bestätigung, dass das Zertifikat installiert wurde.
Zertifikatantwort wurde im Keystore installiert
Großartig, der Keystore für das Zertifikat ist jetzt fertig. Lassen Sie uns zum nächsten Schritt übergehen.
Wenn Sie neu im Bereich SSL sind und mehr wissen möchten, melden Sie sich zu diesem Online-Kurs an – SSL/TLS Operations.
Aktivieren Sie SSL in Tomcat
Angenommen, Sie sind noch am Tomcat-Server angemeldet, gehen Sie zum Ordner conf
- Erstellen Sie eine Sicherungskopie der Datei server.xml
- Gehen Sie zum Abschnitt
<Connector port="8080" protocol="HTTP/1.1"
und fügen Sie eine Zeile hinzu
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Vergessen Sie nicht, den Namen der Keystore-Datei und das Passwort mit Ihrem zu ändern
- Starten Sie Tomcat neu und Sie sollten sehen, dass Tomcat über HTTPS erreichbar ist
Klasse!
Standard-HTTPS-Anschluss
Warum eigentlich?
Nun, wenn Sie sich den obigen Screenshot ansehen, greife ich über 8080 mit https auf Tomcat zu, was nicht dem Standard entspricht, und noch einige andere Gründe.
- Sie möchten die Benutzer nicht auffordern, einen benutzerdefinierten Port zu verwenden
- Der Browser gibt eine Warnung aus, da das Zertifikat auf einen Domänennamen ohne Port ausgestellt wurde
Die Idee ist also, Tomcat auf dem Port 443 lauschen zu lassen, so dass er nur über https:// ohne die Portnummer erreichbar ist.
Bearbeiten Sie dazu die Datei server.xml mit Ihrem bevorzugten Editor
- Gehen Sie zu
<Connector port="8080"
- Ändern Sie den Port von 8080 auf 443
- Es sollte wie folgt aussehen
<Verbindung port="443" protocol="HTTP/1.1"
connectionTimeout="20000"
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
redirectPort="8443" />
- Starten Sie Tomcat neu und greifen Sie auf Ihre Anwendung mit https ohne Portnummer zu
Beeindruckend, das ist ein Erfolg!
Test auf SSL/TLS-Schwachstellen
Zum Schluss führen wir einen Test durch, um sicherzustellen, dass das System nicht durch Online-Bedrohungen gefährdet ist.
Es gibt viele Online-Tools, die ich hier besprochen habe, und hier werde ich SSL Labs verwenden.
- Gehen Sie zu SSL Labs und geben Sie die URL ein, um den Test zu starten
Und es ist GRÜN – Bewertung A.
Es ist jedoch immer eine gute Idee, im Bericht nach unten zu scrollen und zu sehen, ob Sie eine Schwachstelle finden und diese beheben.
Das war also alles für heute.
Ich hoffe, dass Sie nun wissen, wie Sie Tomcat mit einem SSL/TLS-Zertifikat sichern können. Wenn Sie mehr darüber erfahren möchten, kann ich Ihnen diesen Kurs nur empfehlen.