Πώς να ασφαλίσετε το Nginx με το Lets Encrypt στο CentOS 8


Ιδρύθηκε τον Απρίλιο του 2016 από το Electronic Frontier Foundation (EFF), το Let’s Encrypt είναι ένα δωρεάν και αυτοματοποιημένο ψηφιακό πιστοποιητικό που παρέχει κρυπτογράφηση TLS για ιστότοπους χωρίς απολύτως κανένα κόστος.

Ο στόχος του πιστοποιητικού Let’s Encrypt είναι να αυτοματοποιήσει την επικύρωση, τη δημιουργία, την υπογραφή καθώς και την αυτόματη ανανέωση του πιστοποιητικού ασφαλείας. Αυτό το πιστοποιητικό επιτρέπει κρυπτογραφημένες συνδέσεις με διακομιστές ιστού χρησιμοποιώντας το πρωτόκολλο HTTPS με απλό, απροβλημάτιστο τρόπο, χωρίς καμία πολυπλοκότητα. Το πιστοποιητικό ισχύει μόνο για 90 ημέρες κατά τις οποίες μπορεί να ενεργοποιηθεί η αυτόματη ανανέωση.

Συνιστώμενη ανάγνωση: Πώς να ασφαλίσετε τον Apache με το Let’s Encrypt SSL Certificate στο CentOS 8

Σε αυτό το άρθρο, θα δείξουμε πώς μπορείτε να εγκαταστήσετε το Let's Encrypt για να αποκτήσετε ένα δωρεάν πιστοποιητικό SSL για να ασφαλίσετε τον διακομιστή web Nginx στο CentOS 8 ( Οι ίδιες οδηγίες λειτουργούν και στο RHEL 8). Θα σας εξηγήσουμε επίσης πώς να ανανεώνετε αυτόματα το πιστοποιητικό SSL.

Προαπαιτούμενα

Πριν προχωρήσουμε, βεβαιωθείτε ότι έχετε τα ακόλουθα υπό έλεγχο.

1. Ένα Πλήρως πιστοποιημένο όνομα τομέα (FQDN) που δείχνει σε μια αποκλειστική διεύθυνση IP του διακομιστή ιστού. Αυτό πρέπει να ρυθμιστεί στην περιοχή πελάτη του παρόχου φιλοξενίας ιστού DNS. Για αυτό το σεμινάριο, χρησιμοποιούμε το όνομα τομέα linuxtechwhiz που δείχνει τη διεύθυνση IP 34.70.245.117.

2. Μπορείτε επίσης να το επιβεβαιώσετε πραγματοποιώντας μια αναζήτηση προς τα εμπρός χρησιμοποιώντας την εντολή dig όπως φαίνεται.

$ dig linuxtechwhiz.info

Το 3. Nginx είναι εγκατεστημένο και εκτελείται στον διακομιστή ιστού. Μπορείτε να το επιβεβαιώσετε κάνοντας είσοδο στο τερματικό και εκτελώντας την παρακάτω εντολή. Εάν το Nginx δεν είναι εγκατεστημένο, ακολουθήστε το άρθρο μας για να εγκαταστήσετε το Nginx στο CentOS 8.

$ sudo systemctl status nginx

4. Μπορείτε επίσης να επαληθεύσετε μεταβαίνοντας στη διεύθυνση URL του διακομιστή ιστού σε ένα πρόγραμμα περιήγησης ιστού.

http://server-IP-or-hostname

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

Τώρα ας λερώσουμε τα χέρια μας και ας εγκαταστήσουμε το Let’s Encrypt.

Βήμα 1. Εγκαταστήστε το Certbot στο CentOS 8

Για να εγκαταστήσετε το πιστοποιητικό Let’s Encrypt, πρέπει πρώτα από όλα να έχετε εγκαταστήσει το certbot. Αυτό είναι ένα επεκτάσιμο πρόγραμμα-πελάτη που ανακτά ένα πιστοποιητικό ασφαλείας από την Let’s Encrypt Authority και σας επιτρέπει να αυτοματοποιήσετε την επικύρωση και τη διαμόρφωση του πιστοποιητικού για χρήση από τον διακομιστή ιστού.

Κάντε λήψη του certbot χρησιμοποιώντας την εντολή curl.

$ sudo curl -O https://dl.eff.org/certbot-auto

Στη συνέχεια, μετακινήστε το πιστοποιητικό στον κατάλογο /usr/local/bin.

$ sudo mv certbot-auto /usr/local/bin/certbot-auto

Στη συνέχεια, εκχωρήστε δικαιώματα αρχείου στο αρχείο certbot όπως φαίνεται.

$ chmod 0755 /usr/local/bin/certbot-auto

Βήμα 2. Διαμορφώστε το μπλοκ διακομιστή Nginx

Ένα μπλοκ διακομιστή στο Nginx είναι το ισοδύναμο ενός εικονικού κεντρικού υπολογιστή στο Apache. Η ρύθμιση μπλοκ διακομιστών όχι μόνο σάς επιτρέπει να ρυθμίσετε πολλούς ιστότοπους σε έναν διακομιστή, αλλά επίσης επιτρέπει στο certbot να αποδείξει την ιδιοκτησία του τομέα στην Αρχή έκδοσης πιστοποιητικών – CA.

Για να δημιουργήσετε ένα μπλοκ διακομιστή, εκτελέστε την εντολή που εμφανίζεται.

$ sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Φροντίστε να αντικαταστήσετε το όνομα τομέα με το δικό σας όνομα τομέα. Στη συνέχεια, επικολλήστε την παρακάτω διαμόρφωση.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Αποθηκεύστε το αρχείο και βγείτε από το πρόγραμμα επεξεργασίας κειμένου.

Βήμα 3: Εγκαταστήστε το Lets Encrypt Certificate στο CentOS 8

Τώρα χρησιμοποιήστε την εντολή certbot για να αρχικοποιήσετε την ανάκτηση και τη διαμόρφωση του πιστοποιητικού ασφαλείας Let’s Encrypt.

$ sudo /usr/local/bin/certbot-auto --nginx

Αυτή η εντολή θα εκτελέσει και θα εγκαταστήσει πολλά πακέτα Python και τις εξαρτήσεις τους όπως φαίνεται.

Στη συνέχεια θα ακολουθήσει μια διαδραστική προτροπή όπως φαίνεται:

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

Για να επιβεβαιώσετε ότι ο ιστότοπός σας Nginx είναι κρυπτογραφημένος, φορτώστε ξανά την ιστοσελίδα και παρατηρήστε το σύμβολο του λουκέτου στην αρχή της διεύθυνσης URL. Αυτό υποδηλώνει ότι ο ιστότοπος είναι ασφαλής με χρήση κρυπτογράφησης SSL/TLS.

Για να λάβετε περισσότερες πληροφορίες σχετικά με το πιστοποιητικό ασφαλείας, κάντε κλικ στο σύμβολο του λουκέτου και επιλέξτε την επιλογή «Πιστοποιητικό».

Περισσότερες πληροφορίες σχετικά με το πιστοποιητικό ασφαλείας θα εμφανιστούν όπως φαίνεται παρακάτω.

Επιπλέον, για να ελέγξετε την ισχύ του πιστοποιητικού ασφαλείας, μεταβείτε στη διεύθυνση https://www.ssllabs.com/ssltest/ και βρείτε μια πιο ακριβή και σε βάθος ανάλυση της κατάστασης του πιστοποιητικού ασφαλείας.

Βήμα 4. Ανανέωση του πιστοποιητικού Let’s Encrypt

Όπως είδαμε νωρίτερα, το πιστοποιητικό ασφαλείας ισχύει μόνο για διάρκεια 90 ημερών και πρέπει να ανανεωθεί πριν από τη λήξη.

Μπορείτε να προσομοιώσετε ή να δοκιμάσετε τη διαδικασία ανανέωσης πιστοποιητικού εκτελώντας την εντολή:

$ sudo /usr/local/bin/certbot-auto renew --dry-run
συμπέρασμα

Αυτό ολοκληρώνει αυτό το σεμινάριο για την ασφάλεια του Nginx με το Let’s Encrypt στο CentOS 8. Το Let’s Encrypt προσφέρει έναν αποτελεσματικό και απροβλημάτιστο τρόπο για να προστατεύσετε τον διακομιστή ιστού Nginx που διαφορετικά θα ήταν μια πολύπλοκη υπόθεση για να το κάνετε με το χέρι.

Ο ιστότοπός σας θα πρέπει τώρα να είναι πλήρως κρυπτογραφημένος. Λίγες εβδομάδες πριν την ημερομηνία λήξης του πιστοποιητικού, το EFF θα σας ειδοποιήσει μέσω email για να ανανεώσετε το πιστοποιητικό για να αποφευχθεί η διακοπή που μπορεί να προκύψει λόγω ενός πιστοποιητικού που έχει λήξει. Αυτά είναι όλα παιδιά για σήμερα!