Wie implementiert man SSL in Apache Tomcat?

Eine Schritt-für-Schritt-Anleitung zum Einrichten des SSL/TLS-Zertifikats auf dem Tomcat-Server.

Eine der wesentlichen Aufgaben zum Sichern von Tomcat ist die Konfiguration des SSL-Zertifikats, damit auf die Webanwendung über HTTPS zugegriffen werden kann.

Es gibt viele Möglichkeiten, dies zu erreichen.

  • Sie können SSL bei einem Load Balancer terminieren
  • Implementieren Sie SSL auf CDN-Ebene
  • Verwenden Sie Webserver wie Apache, Nginx usw. vor und implementieren Sie dort SSL

Wenn Sie jedoch keines der oben genannten verwenden oder dies als Front-End verwenden oder SSL direkt in Tomcat bereitstellen müssen, hilft Ihnen das Folgende.

In diesem Artikel werden wir wie folgt vorgehen.

  • Generieren Sie CSR (Zertifikatsignieranforderung)
  • Zertifikat in eine Keystore-Datei importieren
  • Aktivieren Sie SSL in Tomcat
  • Konfigurieren Sie das TLS-Protokoll
  • Ändern Sie Tomcat so, dass er auf Port 443 lauscht
  • Testen Sie Tomcat auf SSL-Schwachstelle

Lasst uns beginnen…

Vorbereitung für das SSL/TLS-Zertifikat

Der erste Schritt wäre, einen CSR zu erstellen und diesen vom zu unterzeichnen Zertifizierungsstelle. Wir werden das Dienstprogramm keytool verwenden, um die Zertifikate zu verwalten.

  • Melden Sie sich beim Tomcat-Server an
  • Gehen Sie zum Tomcat-Installationspfad
  • Erstellen Sie einen Ordner namens ssl
  • Führen Sie den Befehl aus, um einen Schlüsselspeicher zu erstellen
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 aussagekräftig halten, damit Sie ihn in Zukunft schnell erkennen können. Ich ziehe es vor, es als Domainnamen zu behalten.
  • Dateiname – Auch hier ist es gut, den Domainnamen beizubehalten.
  •   Was ist Dropshipping und ist es ein Betrug?

    Ex:

    [[email protected] 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):
    
    [[email protected] ssl]#

    Achten Sie auf die Vor- und Nachnamenfrage. Das ist meiner Meinung nach etwas irreführend. 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 generieren Sie eine neue CSR mit dem neu erstellten Schlüsselspeicher 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 einen KOSTENLOSEN Zertifikatsanbieter verwenden oder sich für einen Premium-Anbieter entscheiden.

    Ich habe das Zertifikat signiert und werde mit dem folgenden Befehl in den Schlüsselspeicher importieren.

    • Das Import-Root-Zertifikat 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 den Import von Root und Intermediate können Sie das Domänenzertifikat nicht in den Schlüsselspeicher importieren. Wenn Sie mehr als ein Zwischenprodukt haben, müssen Sie alle importieren.

    • Domänenzertifikat importieren
    keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

    und Sie erhalten eine Bestätigung, dass es installiert wurde.

      Ubuntu: App-Verlauf löschen [Guide]

    Zertifikatsantwort wurde im Schlüsselspeicher installiert

    Großartig, der Zertifikat-Keystore ist jetzt bereit. Kommen wir zum nächsten Schritt.

    Wenn Sie neu bei SSL sind und mehr wissen möchten, dann melden Sie sich für diesen Online-Kurs an – SSL/TLS-Operationen.

    Aktivieren Sie SSL in Tomcat

    Angenommen, Sie sind immer noch beim Tomcat-Server angemeldet, gehen Sie zum Ordner conf

    • Erstellen Sie eine Sicherungskopie der Datei server.xml
    • Gehen Sie zum Abschnitt
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    • Vergessen Sie nicht, den Namen und das Passwort der Keystore-Datei mit Ihrem zu ändern
    • Starten Sie Tomcat neu und Sie sollten sehen, dass Tomcat über HTTPS zugänglich ist

    Süss!

    Standard-HTTPS-Port

    Wieso den?

    Nun, wenn Sie sich den obigen Screenshot ansehen, greife ich über 8080 mit https auf Tomcat zu, was nicht Standard ist, und aus einigen weiteren Gründen.

    • Sie möchten Benutzer nicht auffordern, einen benutzerdefinierten Port zu verwenden
    • Der Browser gibt eine Warnung aus, wenn das Zertifikat für den Domänennamen ohne den Port ausgestellt wird
      So aktivieren Sie ein Vorschaufenster in Google Mail

    Die Idee ist also, Tomcat dazu zu bringen, auf Port 443 zu lauschen, damit er nur über https:// ohne die Portnummer zugänglich ist.

    Bearbeiten Sie dazu server.xml mit Ihrem bevorzugten Editor

    • Gehen Sie zu
    • Ä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

    Beeindruckend, es ist ein Erfolg!

    SSL/TLS-Schwachstellentest

    Abschließend führen wir einen Test durch, um sicherzustellen, dass es nicht anfällig für Online-Bedrohungen ist.

    Es gibt viele Online-Tools, die ich hier besprochen habe, und hier werde ich SSL Labs verwenden.

    • Gehe zu SSL-Labs und geben Sie die URL ein, um den Test zu starten

    Und es ist GRÜN – eine Bewertung.

    Es ist jedoch immer eine gute Idee, den Bericht nach unten zu scrollen und zu sehen, ob Sie eine Schwachstelle finden und diese beheben.

    Das war es also für heute.

    Ich hoffe, dies hilft Ihnen, das Verfahren zum Sichern von Tomcat mit einem SSL/TLS-Zertifikat zu kennen. Wenn Sie daran interessiert sind, mehr zu erfahren, kann ich dies wärmstens empfehlen Kurs.