Eine Schritt-für-Schritt-Anleitung zum Einrichten des SSL / TLS-Zertifikats auf dem Tomcat-Server.
Eine der wesentlichen Aufgaben für Tomcat sichern dient zum Konfigurieren des SSL-Zertifikats, damit auf die Webanwendung über zugegriffen werden kann HTTPS.
Es gibt viele Möglichkeiten, dies zu erreichen.
- Sie können SSL an einem Load Balancer beenden
- Implementieren Sie SSL auf CDN-Ebene
- Verwenden Sie Webserver wie Apache, Nginx usw. und implementieren Sie dort SSL
Wenn Sie jedoch keines der oben genannten Elemente verwenden oder dieses als Front-End verwenden oder SSL direkt in Tomcat bereitstellen müssen, hilft Ihnen das Folgende.
In diesem Artikel werden wir wie folgt vorgehen.
- CSR generieren (Zertifikatssignierungsanforderung)
- Zertifikat in eine Keystore-Datei importieren
- Aktivieren Sie SSL in Tomcat
- Konfigurieren Sie das TLS-Protokoll
- Ändern Sie Tomcat so, dass es den 443-Port überwacht
- Testen Sie Tomcat auf SSL-Sicherheitslücken
Lass uns beginnen…
Preparing for SSL/TLS Certificate
Der erste Schritt wäre, eine CSR zu generieren und diese von der Zertifizierungsstelle. Wir werden verwenden keytool
Dienstprogramm zum Verwalten der Zertifikate.
- Melden Sie sich beim Tomcat-Server an
- Wechseln Sie zum Tomcat-Installationspfad
- Erstellen Sie einen Ordner namens ssl
- Befehl ausführen zu Erstellen Sie einen Keystore
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
In den obigen Befehlen gibt es zwei Variablen, die Sie möglicherweise ändern möchten.
- Alias - besser, um es aussagekräftig zu halten, damit Sie es in Zukunft schnell erkennen können. Ich ziehe es vor, es als Domainnamen zu behalten.
- Dateiname - Auch hier ist es gut, den Domainnamen beizubehalten.
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]#
Beachten die Vor- und Nachname Frage. Das ist ein bisschen irreführend, denke ich. Es ist nicht Ihr Name, sondern der Domainname, den Sie sichern möchten.
Sobald Sie alle Informationen angegeben haben, wird eine Keystore-Datei in einem aktuellen Arbeitsverzeichnis erstellt.
Als nächstes wäre zu Generieren Sie eine neue CSR mit dem neu erstellten Keystore mit dem folgenden Befehl.
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 herumspielen, können Sie die Verwendung in Betracht ziehen ein KOSTENLOSER Zertifikatanbieter Ansonsten entscheiden Sie sich für eine Premium.
Ich habe das Zertifikat unterschrieben und werde fortfahren in den Keystore importieren mit dem folgenden Befehl.
- Das Import-Stammzertifikat wird vom Anbieter bereitgestellt
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Zwischenzertifikat importieren
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Hinweis: Ohne Import von Root & Intermediate können Sie kein Domänenzertifikat in den Keystore importieren. Wenn Sie mehr als ein Zwischenprodukt 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 es installiert wurde.
Die Zertifikatantwort wurde im Keystore installiert
GroßDer Zertifikat-Keystore ist jetzt bereit. Fahren wir mit dem nächsten Schritt fort.
Wenn Sie SSL noch nicht kennen und mehr wissen möchten, melden Sie sich für diesen Online-Kurs an - SSL / TLS-Vorgänge.
Enable SSL in Tomcat
Angenommen, Sie sind noch beim Tomcat-Server angemeldet, wechseln Sie in den Ordner conf
- Erstellen Sie eine Sicherungskopie der Datei server.xml
- Gehen Sie zu
<Connector port="8080" protocol="HTTP/1.1"
Abschnitt und fügen Sie eine Linie hinzu
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Vergessen Sie nicht, den Namen und das Kennwort der Keystore-Datei mit Ihrem zu ändern
- Starten Sie tomcat neu und Sie sollten sehen, dass auf Tomcat über HTTPS zugegriffen werden kann
Süß!
Standard HTTPS Port
Warum?
Wenn Sie sich den obigen Screenshot ansehen, greife ich über https auf Tomcat über 8080 zu, was nicht Standard ist und einige weitere Gründe.
- Sie möchten Benutzer nicht auffordern, einen benutzerdefinierten Port zu verwenden
- Der Browser gibt eine Warnung aus, wenn das Zertifikat für den Domainnamen ohne Port ausgestellt wird
Die Idee ist also, Tomcat dazu zu bringen, den 443-Port abzuhören, damit er über https: // ohne die Portnummer zugänglich ist.
Bearbeiten Sie dazu server.xml mit Ihrem bevorzugten Editor
- Gehen Sie zu
<Connector port="8080"
- Ändern Sie den Port von 8080 auf 443
- Es sollte so aussehen
<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" />
- Starten Sie Tomcat neu und greifen Sie mit https ohne Portnummer auf Ihre Anwendung zu
BeeindruckendeEs ist ein Erfolg!
SSL/TLS Vulnerability Test
Schließlich werden wir einen Test durchführen, um sicherzustellen, dass dies nicht der Fall ist anfällig für Online-Bedrohungen.
Es gibt viele Online-Tools, die ich hier besprochenund hier werde ich SSL Labs verwenden.
- Gehen Sie zu SSL Labs und geben Sie die URL ein, um den Test zu starten
Und sein GRÜN - Eine Bewertung.
Es ist jedoch immer eine gute Idee, im Bericht nach unten zu scrollen und festzustellen, ob Sie eine Sicherheitsanfälligkeit finden und diese beheben.
Das war also alles für heute.
Ich hoffe, dies hilft Ihnen dabei, das Verfahren zum Sichern von Tomcat mit einem SSL / TLS-Zertifikat zu kennen. Wenn Sie mehr erfahren möchten, kann ich dies nur empfehlen Kurs.