Πώς να εφαρμόσετε το SSL στο Apache Tomcat;

Ένας βήμα προς βήμα οδηγός για τη ρύθμιση του πιστοποιητικού SSL/TLS στον διακομιστή Tomcat.

Μία από τις βασικές εργασίες για την ασφάλεια του Tomcat είναι η διαμόρφωση του πιστοποιητικού SSL, ώστε η εφαρμογή Ιστού να είναι προσβάσιμη μέσω HTTPS.

Υπάρχουν πολλοί τρόποι για να επιτευχθεί αυτό.

  • Μπορείτε να τερματίσετε το SSL σε έναν εξισορροπητή φορτίου
  • Εφαρμογή SSL σε επίπεδο CDN
  • Χρησιμοποιήστε διακομιστές ιστού όπως Apache, Nginx κ.λπ. μπροστά και εφαρμόστε το SSL εκεί

Ωστόσο, εάν δεν χρησιμοποιείτε κανένα από τα παραπάνω ή το χρησιμοποιείτε ως διεπαφή ή χρειάζεται να αναπτύξετε το SSL απευθείας στο Tomcat, τότε τα παρακάτω θα σας βοηθήσουν.

Σε αυτό το άρθρο, θα κάνουμε όπως παρακάτω.

  • Δημιουργία CSR (Αίτημα υπογραφής πιστοποιητικού)
  • Εισαγωγή πιστοποιητικού σε αρχείο αποθήκευσης κλειδιών
  • Ενεργοποίηση SSL στο Tomcat
  • Διαμόρφωση πρωτοκόλλου TLS
  • Αλλάξτε το Tomcat για ακρόαση στη θύρα 443
  • Δοκιμάστε το Tomcat για ευπάθεια SSL

Ας αρχίσουμε…

Προετοιμασία για πιστοποιητικό SSL/TLS

Το πρώτο βήμα θα ήταν να δημιουργήσετε μια ΕΚΕ και να την υπογράψετε από το αρχή έκδοσης πιστοποιητικών. Θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα keytool για τη διαχείριση των πιστοποιητικών.

  • Συνδεθείτε στον διακομιστή Tomcat
  • Μεταβείτε στη διαδρομή εγκατάστασης Tomcat
  • Δημιουργήστε ένα φάκελο που ονομάζεται ssl
  • Εκτελέστε την εντολή για να δημιουργήσετε έναν χώρο αποθήκευσης κλειδιών
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

Υπάρχουν δύο μεταβλητές στις παραπάνω εντολές τις οποίες μπορεί να θέλετε να αλλάξετε.

  Τι σημαίνει «IDK» και πώς το χρησιμοποιείτε;
  • Ψευδώνυμο – καλύτερα να το διατηρήσετε ουσιαστικό, ώστε στο μέλλον να μπορείτε να το αναγνωρίσετε γρήγορα. Προτιμώ να το κρατήσω ως όνομα τομέα.
  • Όνομα αρχείου – και πάλι, είναι καλό να διατηρήσετε το όνομα τομέα.
  • Πρώην:

    [[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]#

    Προσοχή στην ερώτηση για το όνομα και το επώνυμο. Αυτό είναι λίγο παραπλανητικό νομίζω. Δεν είναι το όνομά σας, αλλά το όνομα τομέα που θέλετε να εξασφαλίσετε.

    Μόλις παρέχετε όλες τις πληροφορίες, θα δημιουργήσει ένα αρχείο αποθήκευσης κλειδιών σε έναν τρέχοντα κατάλογο εργασίας.

    Στη συνέχεια θα ήταν να δημιουργήσετε ένα νέο CSR με το νέο κατάστημα κλειδιών με την παρακάτω εντολή.

    keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

    Αυτό θα δημιουργήσει ένα CSR το οποίο πρέπει να στείλετε στην αρχή έκδοσης πιστοποιητικών για να υπογράψει. Εάν παίζετε, τότε μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε έναν ΔΩΡΕΑΝ πάροχο πιστοποιητικών, αλλιώς προτιμήστε ένα premium.

      7 καλύτερες εφαρμογές ανταλλαγής μηνυμάτων βίντεο για εγγραφή οθόνης και κάμερας

    Έλαβα το πιστοποιητικό υπογεγραμμένο και θα προχωρήσω στην εισαγωγή στο keystore με την παρακάτω εντολή.

    • Το πιστοποιητικό ρίζας εισαγωγής παρέχεται από τον πάροχο
    keytool -importcert -alias root -file root -keystore bloggerflare.jks
    • Ενδιάμεσο πιστοποιητικό εισαγωγής
    keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

    Σημείωση: χωρίς εισαγωγή root & intermediate, δεν θα μπορείτε να εισαγάγετε πιστοποιητικό τομέα στο keystore. Εάν έχετε περισσότερα από ένα ενδιάμεσα, τότε πρέπει να τα εισαγάγετε όλα.

    • Εισαγωγή πιστοποιητικού τομέα
    keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

    και, θα λάβετε επιβεβαίωση ότι εγκαταστάθηκε.

    Η απάντηση πιστοποιητικού εγκαταστάθηκε στο keystore

    Τέλεια, οπότε το πιστοποιητικό κλειδιού είναι έτοιμο τώρα. Ας περάσουμε στο επόμενο βήμα.

    Εάν είστε νέος στο SSL και ενδιαφέρεστε να μάθετε περισσότερα, εγγραφείτε σε αυτό το διαδικτυακό μάθημα – Λειτουργίες SSL/TLS.

    Ενεργοποίηση SSL στο Tomcat

    Υποθέτοντας ότι είστε ακόμα συνδεδεμένοι στον διακομιστή Tomcat, μεταβείτε στον φάκελο conf

    • Πάρτε ένα αντίγραφο ασφαλείας του αρχείου server.xml
    • Μεταβείτε στην ενότητα
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    • Μην ξεχάσετε να αλλάξετε το όνομα του αρχείου keystore και τον κωδικό πρόσβασης με το δικό σας
    • Επανεκκινήστε το Tomcat και θα δείτε ότι το Tomcat είναι προσβάσιμο μέσω HTTPS

    Γλυκός!

    Τυπική θύρα HTTPS

    Γιατί;

    Λοιπόν, αν κοιτάξετε το παραπάνω στιγμιότυπο οθόνης, έχω πρόσβαση στο Tomcat πάνω από 8080 με https που δεν είναι τυπικό και μερικούς ακόμη λόγους.

    • Δεν θέλετε να ζητήσετε από τους χρήστες να χρησιμοποιήσουν προσαρμοσμένη θύρα
    • Το πρόγραμμα περιήγησης θα δώσει προειδοποίηση καθώς το πιστοποιητικό εκδίδεται στο όνομα τομέα χωρίς τη θύρα
      Τι είναι το F-Stop στη φωτογραφία;

    Επομένως, η ιδέα είναι να κάνετε το Tomcat να ακούει στη θύρα 443, ώστε να είναι προσβάσιμο λίγο πάνω από το https:// χωρίς τον αριθμό θύρας.

    Για να το κάνετε αυτό, επεξεργαστείτε το server.xml με τον αγαπημένο σας επεξεργαστή

    • Μεταβείτε στο
    • Αλλάξτε τη θύρα από 8080 σε 443
    • Θα πρέπει να μοιάζει με αυτό
    <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" />
    • Επανεκκινήστε το Tomcat και αποκτήστε πρόσβαση στην εφαρμογή σας με https χωρίς αριθμό θύρας

    Εντυπωσιακό, είναι επιτυχία!

    Δοκιμή ευπάθειας SSL/TLS

    Τέλος, θα πραγματοποιήσουμε μια δοκιμή για να διασφαλίσουμε ότι δεν είναι ευάλωτο σε διαδικτυακές απειλές.

    Υπάρχουν πολλά διαδικτυακά εργαλεία που συζήτησα εδώ και εδώ θα χρησιμοποιήσω τα εργαστήρια SSL.

    • Παω σε Εργαστήρια SSL και εισαγάγετε τη διεύθυνση URL για να ξεκινήσετε τη δοκιμή

    Και είναι ΠΡΑΣΙΝΟ – Μια βαθμολογία.

    Ωστόσο, είναι πάντα καλή ιδέα να κάνετε κύλιση προς τα κάτω στην αναφορά και να δείτε εάν βρείτε κάποια ευπάθεια και να τη διορθώσετε.

    Αυτά λοιπόν ήταν όλα για σήμερα.

    Ελπίζω αυτό να σας βοηθήσει να μάθετε τη διαδικασία διασφάλισης του Tomcat με πιστοποιητικό SSL/TLS. Εάν ενδιαφέρεστε να μάθετε περισσότερα, θα το συνιστούσα ανεπιφύλακτα σειρά μαθημάτων.